문제

NPOI를 사용하여 .xlsx 파일을 열려고하지만 다음 오류로 계속 충돌합니다.

1 is not a supported code page.
Parameter name: codepage

내 코드는 매우 간단합니다.

OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Excel Workbook|*.xlsx";

DialogResult dr = ofd.ShowDialog();

if (dr == DialogResult.OK)
{
    XSSFWorkbook myWorkbook;

    FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);

    using (fs)
    {
        myWorkbook = new XSSFWorkbook(ofd.FileName);
    }
}

통합 문서를 작성하는 동안 오류가 발생합니다. 나는 또한 스트림을 사용하여 다음과 같이 시도했다.

myWorkbook = new XSSFWorkbook(fs);

무엇이 잘못되었는지 아는 사람이 있습니까? .xlsx 파일을 처리하기위한 인터넷에서 적절한 예제를 찾을 수 없습니다. 최신 빌드 (2.0.1)를 고소하고 있습니다.

감사.

도움이 되었습니까?

해결책 4

다른 Excel 라이브러리 인 Epplus를 사용하여 파일을 성공적으로 열 수있었습니다. 나는 여전히 .xls 파일에 npoi를 사용하지만 .xlsx의 경우 갈 길이 멀다고 생각합니다.

다른 팁

ICSharpCode.SharpZipLib.Zip.ZipConstants.DefaultCodePage = Encoding.Default.CodePage;
...
FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
XSSFWorkbook workbook = new XSSFWorkbook(fs);

그것은 나를 위해 작동합니다 ...;)

나는 문제없이 통합 문서 공장을 사용하고 있습니다. 파일이 XLS인지 XLSX인지 여부를 감지하고 적절한 개체를 반환합니다. 이것은 버전 2.06입니다.

빠른 샘플 :

_fileStream = new FileStream(filenamePath, FileMode.Open, FileAccess.Read);
_currentWorksheet = _workbook.GetSheetAt(0);
_workbook = WorkbookFactory.Create(_fileStream);
_fileStream.Close();

나는 지난 10 년 동안 Apache Poi 사용자였으며 NPOI가 그의 Java 아버지만큼 훌륭하다고 생각했지만 Gatekeeper가 옳다고 생각합니다.

나는 OpenXML을 찾아야한다 :(

최신 NPOI 버전 인 NPOI 2.0 RC를 사용해보십시오. 여기 링크가 있습니다: https://npoi.codeplex.com/releases/view/112932

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top