visual read net manipular guardar escribir desde datos application .net excel

read - Modificando la hoja de cálculo de Excel con.NET



vb net excel interop (8)

Aquí está el problema:

Tengo que modificar una hoja de cálculo de Excel existente usando .NET. La hoja de cálculo es muy compleja y solo tengo que agregar datos en algunas áreas predefinidas.

Estoy investigando mis opciones, y Excel Automation / InterOp está fuera de cuestión, ya que estoy implementando un sitio web ASP.NET, y Excel probablemente no está instalado en el servidor. De lo que encuentro en línea, InterOp también es una solución muy costosa en cuanto a rendimiento.

Crear un archivo CSV también se descarta debido a la naturaleza compleja de la hoja de cálculo original.

Actualmente me estoy inclinando por una solución OleDb de ADO.NET, pero encuentro que se menciona muy raramente (Google y Stackoverflow.com), así que estoy un poco preocupado: ¿Cuál es el problema con OldDb for Excel? El único inconveniente que puedo encontrar en MSDN hasta el momento, es que no puedo crear celdas con fórmulas, pero eso realmente no es un problema en mi caso.

También consideré SSIS, pero eso solo se basa en mi suposición de que puede usar archivos existentes de Excel cuando genera hojas de cálculo. No sé si eso es posible o no.

Luego está OpenXml. Parece demasiado complicado en comparación con OldDb, y aún no está claro cuál de las versiones anteriores de Excel tengo que admitir.

¿Me estoy perdiendo de algo? ¿Hay más alternativas?


Aún tienes pocas soluciones. 1) componente de terceros para archivos de Excel. (Creo que esta es la solución más dolorosa y confiable) 2) Usando html-table.

1) Simplemente mira internet :) 2) El excel funciona bastante bien con html-tables. Si genera este html:

<html><body> <table> <tr><td><b>Column A</b></td><td><b>Column B</b></td></tr> <tr><td><font color="red">-154</b></td><td><font size="5">hello world</font></td></tr> </table> </body></html>

Excel lo mostrará como una hoja de trabajo a medida que lo formó. Creo que esta es la manera más universal de crear hojas de cálculo de Excel "ricas" en el entorno de Internet sin tener Excel instalado en el servidor.


Consulte la solución MyXls a .NET para leer y escribir archivos binarios XLS.


Eche un vistazo a Excel Web Access , que es parte de Excel Services en MOSS, una versión del servidor de Excel que le permite calcular y mostrar su información de Excel a través de un navegador web. La página de descripción general de MOSS describe el marco de SharePoint que puede proporcionar la funcionalidad de Excel en el servidor. Puede usar la API de VSTO para acceder mediante programación a hojas de cálculo.


El problema con el uso de Excel como base de datos ISAM con cualquier controlador (ODBC, OLEDB., Etc.) es que el tipo de datos de la columna se basa en las primeras 8 filas de la columna; esto es pura maldad; por ejemplo: si una columna es algo así como una parte # y las primeras 8 partes son numéricas, entonces obtienes NULL para cualquier celda en esa columna donde la parte # no es numérica. (110000 vs 111000-1 o 111000A). Esto es independiente de cómo formatee la columna en Excel (incluso si configura la columna como texto).

Trataré de encontrar un documento y actualizarlo. Aquí hay uno:

http://support.microsoft.com/kb/194124

http://msdn.microsoft.com/en-us/library/bb177610.aspx


En esa situación, normalmente preferiría no meterme con la hoja de cálculo compleja, sino configurar un archivo de datos por separado, al que vincularía las celdas de datos en la hoja de cálculo compleja. Esto es mucho más limpio y seguro que cambiar una hoja de cálculo compleja desde el exterior.

Si esto no es más fácil que las alternativas que enfrenta actualmente, me sorprendería. Pero luego no he visto tu hoja de cálculo.


He usado Aspose.Cells para este tipo de cosas con buen éxito. La documentación puede ser un poco obtusa, pero el producto parece funcionar. No requerirá tener Excel en el servidor y funciona con las últimas versiones de Excel (y versiones anteriores).