Si hallas alguna incompatibilidad en tu código o trabajo, recuerda probar siempre en un entorno de testing antes aplicar el código al trabajo final.
Solución:
Hola, encontré una manera mucho más rápida.
Es mejor leer todos los datos de una sola vez usando “get_range”. Esto carga los datos en la memoria y puedo recorrerlos como un usuario normal array.
Microsoft.Office.Interop.Excel.Range range = gXlWs.get_Range("A1", "F188000");
object[,] values = (object[,])range.Value2;
int NumRow=1;
while (NumRow < values.GetLength(0))
for (int c = 1; c <= NumCols; c++)
Fields[c - 1] = Convert.ToString(values[NumRow, c]);
NumRow++;
Hay varias opciones, todas involucran alguna biblioteca adicional:
-
OpenXML 2.0 (biblioteca gratuita de MS) se puede usar para leer/modificar el contenido de un .xlsx para que pueda hacer con él lo que quiera
-
algunas bibliotecas (comerciales) de terceros vienen con controles de cuadrícula que le permiten hacer mucho más con archivos de Excel en su aplicación (ya sea Winforms/WPF/ASP.NET...) como SpreadsheetGear, Aspose.Cells, etc.
Aquí puedes ver las comentarios y valoraciones de los lectores
Si sostienes alguna indecisión y forma de enriquecer nuestro post te recordamos añadir una crónica y con gusto lo observaremos.