2011-11-12 33 views
12

Estoy usando excelLibrary para crear archivos Excel de forma programada, pero obtengo un error de formato de archivo cuando intento abrir los archivos generados en Microsoft Office Excel.No se puede abrir el archivo Excel generado con excelLibrary

He visto this has been reported pero todavía no hay ninguna respuesta al respecto.

Uso Office 2010 y soy capaz de abrir cualquier otro .xls (formato de archivo 97-2003) pero los que se generan con excelLibrary. También probé Open Office y todavía no puedo abrir el archivo generado. No intenté abrirlos en Office 97-2003.

Prueba el sample code para reproducir el error.

¿Alguien ha encontrado cómo usar la biblioteca y no tiene este problema?

+0

No estoy seguro del error; sin embargo, la biblioteca no tiene soporte para 2007/2010, ¿tal vez busque algo más nuevo? http://netoffice.codeplex.com/ – Kane

+0

He encontrado una solución, vea mi nueva respuesta. – aleroot

+0

Pruebe [EPPlus] (http://epplus.codeplex.com). Requiere .NET 3.5 pero es increíble y muy poderoso. Utiliza OpenOfficeXml. –

Respuesta

39

encontrado una solución:

string filename = "c:\Test.xls"; 
Workbook workbook = new Workbook(); 
Worksheet sheet = new Worksheet("Test") 
workbook.Worksheets.Add(sheet) 

for(int i = 0;i < 100; i++) 
     sheet.Cells[i,0] = new Cell(""); 

workbook.save(filename); 

El problema es que Office 2010 no lo soporta a menos que haya 100 o más celdas llenas.

Mi trabajo consistía en rellenar 100 celdas en un ciclo for con "". De esta forma obtiene 100 células y luego funciona bien.

Referencia: here

+0

+1 ¡Impresionante! ¡Estaba buscando esto, gracias! – Somebody

+0

Gracias hombre ... Salvaste la vida de 3 personas – Sayka

+0

¡Eso funcionó! Pero el límite de 256 columnas es demasiado restrictivo (¿Excel 97?). Lástima, realmente prefiero la licencia LGPL sobre Apache. Probando NPOI a continuación. – user922020

5

Desafortunadamente el archivo de Excel exportado con excelLibrary no es compatible con Office 2010 Excel, este es un problema ya informado pero parece que el desarrollo de la biblioteca ya no está activo.

He cambiado a NPOI.

+0

+1 para NPOI, solo tenga en cuenta que NPOI API es bastante detallado en su estilo, lo que le exige crear constantemente * cosas, en particular cuando se trata de formatear. Además, las abreviaturas de sus nombres son verdaderamente horribles, lo que hace que intellisense sea casi inútil hasta que recuerde que lo que desea se llama "HSSF". –

+1

Sí. Pruebe [EPPlus] (http://epplus.codeplex.com). Requiere .NET 3.5 pero es increíble y muy poderoso. Utiliza OpenOfficeXml. –

-1

Dado que el nombre de la hoja no se da correctamente, estaba lanzando ese error.

Una vez que le damos un nombre a la hoja, funcionará correctamente.

Cuestiones relacionadas