Открытие файлов .xlsx в Npoi

Я пытаюсь открыть файл .xlsx с помощью Npoi, но он продолжает падать со следующей ошибкой:

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).

Спасибо.


person TheGateKeeper    schedule 07.11.2013    source источник


Ответы (5)


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

меня устраивает... ;)

person Simon    schedule 01.06.2016

Я использую Workbook Factory без проблем. Он определит, является ли файл xls или xlsx, и вернет вам соответствующий объект. Обратите внимание, что это версия 2.06.

Быстрый образец:

_fileStream = new FileStream(filenamePath, FileMode.Open, FileAccess.Read);
_currentWorksheet = _workbook.GetSheetAt(0);
_workbook = WorkbookFactory.Create(_fileStream);
_fileStream.Close();
person David Robbins    schedule 24.05.2014
comment
Вероятно, вам следует назначить _workbook прежде чем пытаться его использовать (поменяйте местами строки 2 и 3). - person Developer Webs; 09.07.2019

Я был пользователем Apache POI в течение последнего десятилетия, и я думал, что NPOI был так же хорош, как его отец Java, но я боюсь, что TheGateKeeper прав: долгий путь.

Я должен искать OpenXML :(

person ssamayoa    schedule 17.01.2014

Мне удалось успешно открыть файл с помощью EPPlus, другой библиотеки Excel. Я все еще использую NPOI для файлов .xls, но для .xlsx я думаю, что до этого еще далеко.

person TheGateKeeper    schedule 08.11.2013

Попробуйте последнюю версию NPOI: NPOI 2.0 RC. Вот ссылка: https://npoi.codeplex.com/releases/view/112932

person Tony Qu    schedule 13.01.2014