다른 Excel 라이브러리 인 Epplus를 사용하여 파일을 성공적으로 열 수있었습니다. 나는 여전히 .xls 파일에 npoi를 사용하지만 .xlsx의 경우 갈 길이 멀다고 생각합니다.
문제
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
다른 팁
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
제휴하지 않습니다 StackOverflow