Pregunta

Estoy tratando de abrir un archivo .xlsx usando npoi pero sigue bloqueando con el siguiente error:

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

Mi código es muy simple:

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);
    }
}

El error ocurre al intentar crear el libro de trabajo. Intenté usar también la transmisión, como:

myWorkbook = new XSSFWorkbook(fs);

¿Alguien sabe lo que está mal? No puedo encontrar un ejemplo adecuado en la red para tratar con archivos .xlsx. Estoy demandando la última compilación (2.0.1).

Gracias.

¿Fue útil?

Solución 4

Pude abrir el archivo con éxito usando EPPLUS, otra biblioteca de Excel. Todavía uso NPOI para archivos .xls, pero para .xlsx creo que tiene un largo camino por recorrer.

Otros consejos

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

esto funciona para mi... ;)

He estado usando la fábrica de libros sin problemas. Detectará si el archivo es XLS o XLSX y devolverá el objeto apropiado para usted. Tenga en cuenta que esta es la versión 2.06.

Una muestra rápida:

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

He sido usuario de Apache Poi durante la última década y pensé que NPOI era tan bueno como su padre de Java, pero me temo que The Gatekeeper tiene razón: un largo camino por recorrer.

Tengo que buscar OpenXML :(

Pruebe la última versión de NPOI: NPOI 2.0 RC. Aqui esta el link: https://npoi.codeplex.com/releases/view/112932

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top