Importar Exportar datos desde documento

Importar datos desde documento

Los datos son la colección de hechos crudos y creamos documentos de hojas de cálculo o informes para presentar estos hechos crudos de una manera más significativa. Normalmente, agregamos datos a hojas de cálculo por nosotros mismos, pero a veces, necesitamos reutilizar recursos de datos existentes y aquí es donde surge la necesidad de importar datos a hojas de cálculo desde diferentes fuentes de datos. En este tema, discutiremos algunas técnicas para importar datos a hojas de cálculo desde diferentes fuentes de datos.

Importar Datos Usando Aspose.Cells

Cuando se utiliza Aspose.Cells para abrir un archivo de Excel, todos los datos en el archivo se importan automáticamente, pero Aspose.Cells también admite la importación de datos desde diferentes fuentes de datos. Algunas de estas fuentes de datos se enumeran a continuación:

  • Array
  • ArrayList
  • DataTable
  • DataColumn
  • DataView
  • DataGrid
  • DataReader
  • GridView

Aspose.Cells proporciona una clase, Workbook que representa un archivo de Excel. La clase Workbook contiene una colección de Worksheets que permite acceder a cada hoja de cálculo en el archivo de Excel. Una hoja de cálculo está representada por la clase Worksheet. La clase Worksheet proporciona una colección de Cells.

La colección de Cells proporciona métodos muy útiles para importar datos de diferentes fuentes de datos.

Importar desde un Arreglo

Los desarrolladores pueden importar datos desde un array a sus hojas de cálculo llamando al método ImportArray de la colección Cells. Hay muchas versiones sobrecargadas del método ImportArray, pero una sobrecarga típica toma los siguientes parámetros:

  • Array, representa el objeto array cuyo contenido necesita ser importado
  • Número de fila, representa el número de fila de la primera celda donde se importarán los datos
  • Número de columna, representa el número de columna de la primera celda donde se importarán los datos
  • Es Vertical, un valor booleano que especifica si importar los datos vertical u horizontalmente
//Instantiating a Workbook object

Workbook workbook = new Workbook();

//Adding a new worksheet to the Workbook object

int i = workbook.Worksheets.Add();

//Obtaining the reference of the newly added worksheet by passing its sheet index

Worksheet worksheet = workbook.Worksheets[i];

//Creating an array containing names as string values

string[] names = new string[] { "laurence chen", "roman korchagin", "kyle huang" };

//Importing the array of names to 1st row and first column vertically

worksheet.Cells.ImportArray(names, 0, 0, true);

//Saving the Excel file

workbook.Save(MyDir+"DataImport from Array.xls");

Importar desde un ArrayList

Los desarrolladores pueden importar datos desde un ArrayList a sus hojas de cálculo llamando al método ImportArrayList de la colección Cells. El método ImportArrayList toma los siguientes parámetros: ArrayList, representa el objeto ArrayList cuyo contenido necesita ser importado

  • Número de fila, representa el número de fila de la primera celda donde se importarán los datos
  • Número de columna, representa el número de columna de la primera celda donde se importarán los datos
  • Es Vertical, un valor booleano que especifica si importar los datos vertical u horizontalmente
//Instantiating a Workbook object

Workbook workbook = new Workbook();

//Adding a new worksheet to the Workbook object

int i = workbook.Worksheets.Add();

//Obtaining the reference of the newly added worksheet by passing its sheet index

Worksheet worksheet = workbook.Worksheets[i];

//Instantiating an ArrayList object

ArrayList list = new ArrayList();

//Add few names to the list as string values

list.Add("laurence chen");

list.Add("roman korchagin");

list.Add("kyle huang");

list.Add("tommy wang");

//Importing the contents of ArrayList to 1st row and first column vertically

worksheet.Cells.ImportArrayList(list, 0, 0, true);

//Saving the Excel file

workbook.Save(MyDir + "DataImport from Array List.xls");

Importar desde Objetos Personalizados

Los desarrolladores pueden importar datos desde una colección de objetos a una hoja de cálculo usando ImportCustomObjects. Se puede proporcionar una lista de columnas/propiedades al método para mostrar la lista deseada de objetos.

//Instantiate a new Workbook

Workbook book = new Workbook();

//Clear all the worksheets

book.Worksheets.Clear();

//Add a new Sheet "Data";

Worksheet sheet = book.Worksheets.Add("Data");

//Define List

List<WeeklyItem> list = new List<WeeklyItem>();

//Add data to the list of objects

list.Add(new WeeklyItem() { AtYarnStage = 1, InWIPStage = 2, Payment = 3, Shipment = 4, Shipment2 = 5 });

list.Add(new WeeklyItem() { AtYarnStage = 5, InWIPStage = 9, Payment = 7, Shipment = 2, Shipment2 = 5 });

list.Add(new WeeklyItem() { AtYarnStage = 7, InWIPStage = 3, Payment = 3, Shipment = 8, Shipment2 = 3 });

//We pick a few columns not all to import to the worksheet

sheet.Cells.ImportCustomObjects((System.Collections.ICollection)list,

new string[] { "Date", "InWIPStage", "Shipment", "Payment" },

true,

0,

0,

list.Count,

true,

"dd/mm/yyyy",

false);

//Auto-fit all the columns

book.Worksheets[0].AutoFitColumns();

//Save the Excel file

book.Save(MyDir+"ImportedCustomObjects.xls");

Importar desde un DataTable

Los desarrolladores pueden importar datos desde un DataTable a sus hojas de cálculo llamando al método ImportDataTable de la colección Cells. Hay muchas versiones sobrecargadas del método ImportDataTable pero una sobrecarga típica toma los siguientes parámetros: DataTable , representa el objeto DataTable cuyo contenido necesita ser importado

  • ¿Se Muestra el Nombre del Campo?, especifica si los nombres de las columnas de DataTable deben ser importados a la hoja de cálculo como primera fila o no
  • Celda de Inicio , representa el nombre de la celda de inicio (es decir, “A1”) desde donde importar el contenido del DataTable
//Instantiating a Workbook object

Workbook workbook = new Workbook();

//Adding a new worksheet to the Workbook object

int i = workbook.Worksheets.Add();

//Obtaining the reference of the newly added worksheet by passing its sheet index

Worksheet worksheet = workbook.Worksheets[i];

//Instantiating a "Products" DataTable object

DataTable dataTable = new DataTable("Products");

//Adding columns to the DataTable object

dataTable.Columns.Add("Product ID", typeof(Int32));

dataTable.Columns.Add("Product Name", typeof(string));

dataTable.Columns.Add("Units In Stock", typeof(Int32));

//Creating an empty row in the DataTable object

DataRow dr = dataTable.NewRow();

//Adding data to the row

dr[0] = 1;

dr[1] = "Aniseed Syrup";

dr[2] = 15;

//Adding filled row to the DataTable object

dataTable.Rows.Add(dr);

//Creating another empty row in the DataTable object

dr = dataTable.NewRow();

//Adding data to the row

dr[0] = 2;

dr[1] = "Boston Crab Meat";

dr[2] = 123;

//Adding filled row to the DataTable object

dataTable.Rows.Add(dr);

//Importing the contents of DataTable to the worksheet starting from "A1" cell,

//where true specifies that the column names of the DataTable would be added to

//the worksheet as a header row

worksheet.Cells.ImportDataTable(dataTable, true, "A1");

workbook.Save(MyDir+"Import From Data Table.xls");

Descargar Código de Ejemplo

Exportar datos desde el documento

Aspose.Cells no solo facilita a sus usuarios importar datos a las hojas de cálculo desde fuentes de datos externas, sino que también les permite exportar sus datos de hojas de cálculo a un DataTable. Como sabemos que DataTable es parte de ADO.NET y se usa para almacenar datos. Una vez que los datos se almacenan en un DataTable, pueden utilizarse de cualquier manera según los requisitos de los usuarios.

Exportando Datos a DataTable (.NET) Usando Aspose.Cells

Los desarrolladores pueden exportar fácilmente los datos de sus hojas de cálculo a un objeto DataTable llamando al método ExportDataTable o ExportDataTableAsString de la clase Cells. Ambos métodos se utilizan en diferentes escenarios, que se discuten con más detalle a continuación.

Columnas que contienen datos fuertemente tipados

Sabemos que una hoja de cálculo almacena datos como una secuencia de filas y columnas. Si todos los valores en las columnas de una hoja de cálculo están fuertemente tipados (es decir, todos los valores en una columna deben tener el mismo tipo de datos), entonces podemos exportar el contenido de la hoja de cálculo llamando al método ExportDataTable de la clase Cells. El método ExportDataTable toma los siguientes parámetros para exportar los datos de la hoja de cálculo como un objeto DataTable: Número de Fila , representa el número de fila de la primera celda desde donde se exportarán los datos

  • Número de Columna , representa el número de columna de la primera celda desde donde se exportarán los datos
  • Número de Filas , representa el número de filas a exportar
  • Número de Columnas , representa el número de columnas a exportar
  • Exportar Nombres de Columna , una propiedad booleana que indica si los datos en la primera fila de la hoja de cálculo deben ser exportados como nombres de columna del DataTable o no
//Creating a file stream containing the Excel file to be opened

FileStream fstream = new FileStream(FOD_OpenFile.FileName, FileMode.Open);

//Instantiating a Workbook object

//Opening the Excel file through the file stream

Workbook workbook = new Workbook(fstream);

//Accessing the first worksheet in the Excel file

Worksheet worksheet = workbook.Worksheets[0];

//Exporting the contents of 2 rows and 2 columns starting from 1st cell to DataTable

DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);

//Binding the DataTable with DataGrid

dataGridView1.DataSource = dataTable;

//Closing the file stream to free all resources

fstream.Close();

Columnas que contienen datos no fuertemente tipados

Si todos los valores en las columnas de una hoja de cálculo no están fuertemente tipados (es decir, los valores en una columna pueden tener diferentes tipos de datos), entonces podemos exportar el contenido de la hoja de cálculo llamando al método ExportDataTableAsString de la clase Cells. El método ExportDataTableAsString toma el mismo conjunto de parámetros que el método ExportDataTable para exportar los datos de la hoja de cálculo como un objeto DataTable.

//Creating a file stream containing the Excel file to be opened

FileStream fstream = new FileStream(FOD_OpenFile.FileName, FileMode.Open);

//Instantiating a Workbook object

//Opening the Excel file through the file stream

Workbook workbook = new Workbook(fstream);

//Accessing the first worksheet in the Excel file

Worksheet worksheet = workbook.Worksheets[0];

//Exporting the contents of 2 rows and 2 columns starting from 1st cell to DataTable

DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);

//Binding the DataTable with DataGrid

dataGridView2.DataSource = dataTable;

//Closing the file stream to free all resources

fstream.Close();

Descargar Código de Ejemplo