Pergunta

Estou tentando abrir um arquivo .xlsx usando o npoi, mas ele continua travando com o seguinte erro:

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

Meu código é muito simples:

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

O erro acontece ao tentar criar a pasta de trabalho. Eu tentei também usar o fluxo, como:

myWorkbook = new XSSFWorkbook(fs);

Alguém sabe o que está errado? Não consigo encontrar um exemplo adequado na rede para lidar com arquivos .xlsx. Estou processando a versão mais recente (2.0.1).

Obrigado.

Foi útil?

Solução 4

Consegui abrir o arquivo com sucesso usando o EPPLUS, outra biblioteca do Excel. Eu ainda uso npoi para arquivos .xls, mas para .xlsx, acho que tem um longo caminho a percorrer.

Outras dicas

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

funciona para mim... ;)

Eu tenho usado a fábrica da pasta de trabalho sem problemas. Ele detectará se o arquivo é XLS ou XLSX e retornará o objeto apropriado para você. Observe que esta é a versão 2.06.

Uma amostra rápida:

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

Fui usuário do Apache Poi na última década e pensei que NPOI era tão bom quanto seu pai Java, mas receio que TheGatekeeper esteja certo: um longo caminho a percorrer.

Eu tenho que procurar o Openxml :(

Experimente a versão mais recente do NPOI: NPOI 2.0 RC. Aqui está o link: https://npoi.codeplex.com/releases/view/112932

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top