En una .Neto de la aplicación de escritorio de windows, yo soy capaz de importar una matriz de cadenas de datos en un rango de celdas ubicadas en la hoja de cálculo de Excel. El código de C# es como sigue:
using Excel = Microsoft.Office.Interop.Excel;
//Create Application, Workbook, and Worksheet
xlApp = new Microsoft.Office.Interop.Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWs = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//Move data from temp array into Excel spreadsheet.
Excel.Range c1 = (Excel.Range)xlWs.Cells[startRowNum, 1];
Excel.Range c2 = (Excel.Range)xlWs.Cells[startRowNum + myTable.Rows.Count - 1, Columns.Count];
Excel.Range range = xlWs.get_Range(c1, c2);
range.Value = tempArray;
Estoy tratando de duplicar este proceso en un ASP.Net página web. El uso de Visual Studio 2010 y C#. ¿Cómo puedo hacer esto mismo de la importación de una matriz de cadena en un Open XML SDK 2.0 hoja de cálculo de Excel rango de celdas?
Como respondido, una biblioteca puede ser más fácil de usar. Una alternativa de la biblioteca de elección es SpreadsheetLight. He aquí cómo el código podría ser:
Usted no tiene que preocuparse acerca de que el fin de establecer los valores de celda. Internamente, SpreadsheetLight se ejecuta en Open XML SDK. Descargo de responsabilidad: yo escribí SpreadsheetLight.
El uso de la OpenXML SDK directamente en lugar de ir a través de Excel del modelo de automatización es mucho más complejo y propenso a errores. Por lo tanto, recomiendo el uso de una biblioteca para esto; especialmente si la tarea se vuelve más complejo (por ejemplo,http://excelpackage.codeplex.com/).
Editar: Un ejemplo en hacer algo similar con ExcelPackage se puede encontrar aquí: http://excelpackage.codeplex.com/wikipage?title=Using%20a%20template%20to%20create%20an%20Excel%20spreadsheet Aunque no tengo idea de en qué rendimiento esperar comparación con el uso de la cruda SDK, me imagino que ExcelPackage es usando el SDK internamente de todos modos y por lo tanto se podría producir una sobrecarga. Probablemente sólo una medida para usted escenario concreto puede dar una respuesta definitiva aquí.
Si quieres seguir con el SDK aunque aquí es un ejemplo para la inserción de las cadenas en un libro de Excel:
Por favor, tenga en cuenta que este ejemplo no es perfecto ya que no consideran escenarios complejos en todo (por ejemplo, el estilo, la impresión de margen, celdas combinadas…). Para uso en producción, puede que desee extraer ciertas funciones en un método (por ejemplo, la inserción de una fila o celda en la posición correcta) o, incluso, en una clase por sí mismo (por ejemplo, la parte sobre la comparación de las referencias de celda en el orden correcto).
Editar:
El rendimiento de utilizar el SDK en lugar de ir a través de la Automatización de la Modelo es MUCHO mejor (esta es probablemente la segunda gran ventaja de la SDK, siendo el primero que no neeed tener instalado Excel). Si aún se puede ver cuellos de botella de rendimiento aquí están algunas ideas para la mejora: