Encontré muchas recomendaciones aquí para usar ExcelLibrary para editar archivos excell, pero no puedo encontrar ninguna documentación en ningún lugar.Excellibrary documentation
http://code.google.com/p/excellibrary/
Encontré muchas recomendaciones aquí para usar ExcelLibrary para editar archivos excell, pero no puedo encontrar ninguna documentación en ningún lugar.Excellibrary documentation
http://code.google.com/p/excellibrary/
Prueba esto:
var workbook = Workbook.Load("spreadsheet.xls");
var worksheet = workbook.Worksheets[0]; // assuming only 1 worksheet
var cells = worksheet.Cells;
var dataTable = new DataTable("datatable");
// add columns
dataTable.Columns.Add("column1");
dataTable.Columns.Add("column2");
...
// add rows
for (int rowIndex = cells.FirstRowIndex + 1; rowIndex <= cells.LastRowIndex; rowIndex++)
{
var values = new List<string>();
foreach(var cell in cells.GetRow(rowIndex))
{
values.Add(cell.Value.StringValue);
}
dataTable.LoadDataRow(values.ToArray(), true);
}
no es exactamente el código más bonito pero devuelve un DataTable
. Recomiendo que simplemente use los valores directamente si es posible, es decir. en lugar de convertir a DataTable
, lea los valores directamente y omita este paso de conversión.
Gracias Lester. Solo un problema, la primera fila no es encabezado. No necesito uno. ¿Qué puedo hacer para que la primera fila no sea el encabezado, por lo que es el valor predeterminado (Columna1, Columna2, etc.). Gracias. –
He actualizado el código. Simplemente deberá insertar manualmente el número de columnas según sea necesario. Es posible que puedas hacer 1 mejor y simplemente ponerlo en un bucle, pero no puedo probar ahora mismo. – Lester
no estoy seguro de lo que es esto, pero creo que el método preferido para la manipulación de documentos de Microsoft Office es utilizar Open XML SDK 2.0.
Esta pregunta y sus respuestas son muy antiguas. Cualquiera que mire esto ahora, olvídate de ExcelLibrary. NPOI es ahora el camino a seguir, y funciona bien tanto para .xls y .xlsx
https://npoi.codeplex.com/ - dónde obtener las descargas # C
https://poi.apache.org/ - la mejor documentación que he encontrado, a pesar de que es la versión Java.
//create new xls file
string file = "C:\newdoc.xls";
Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("First Sheet");
worksheet.Cells[0, 1] = new Cell((short)1);
worksheet.Cells[2, 0] = new Cell(9999999);
worksheet.Cells[3, 3] = new Cell((decimal)3.45);
worksheet.Cells[2, 2] = new Cell("Text string");
worksheet.Cells[2, 4] = new Cell("Second string");
worksheet.Cells[4, 0] = new Cell(32764.5, "#,##0.00");
worksheet.Cells[5, 1] = new Cell(DateTime.Now, @"YYYY-MM-DD"); worksheet.Cells.ColumnWidth[0, 1] = 3000;
workbook.Worksheets.Add(worksheet); workbook.Save(file);
// open xls file
Workbook book = Workbook.Load(file);
Worksheet sheet = book.Worksheets[0];
// traverse cells
foreach (Pair, Cell> cell in sheet.Cells)
{
dgvCells[cell.Left.Right, cell.Left.Left].Value = cell.Right.Value;
}
// traverse rows by Index
for (int rowIndex = sheet.Cells.FirstRowIndex; rowIndex <= sheet.Cells.LastRowIndex; rowIndex++)
{
Row row = sheet.Cells.GetRow(rowIndex);
for (int colIndex = row.FirstColIndex; colIndex <= row.LastColIndex; colIndex++)
{
Cell cell = row.GetCell(colIndex);
}
}
Por favor, brinde más explicaciones, thx –
Cómo autohabilitar la celda en ExcelLibrary.dll? –
¿Hay algo específico que estés intentando hacer? Utilicé ExcelLibrary y encontré que la API es simple de entender. – Lester
Estoy tratando de convertir el archivo de Excel a C# datatable, y no sé sintax. Siempre me gusta tener documentación completa, y no puedo encontrar nada aquí. –
Para aquellos que todavía eligen bibliotecas: Hay un proyecto mucho mejor (y también mejor documentado): http://epplus.codeplex.com/ – Laoujin