Importieren und exportieren von Daten aus Dokumenten

Daten aus Dokument importieren

Daten sind die Sammlung von Rohdaten und wir erstellen Tabellendokumente oder Berichte, um diese Rohdaten auf eine sinnvollere Weise zu präsentieren. Normalerweise fügen wir die Daten selbst zu Tabellenkalkulationen hinzu, aber manchmal müssen wir vorhandene Datendokumente wiederverwenden, und hier entsteht die Notwendigkeit, Daten aus verschiedenen Datenquellen in Tabellendokumente zu importieren. In diesem Thema werden einige Techniken zur Datenimport in Tabellenblätter aus verschiedenen Datenquellen erörtert.

Datenimport mit Aspose.Cells

Wenn Sie Aspose.Cells zur Öffnung einer Excel-Datei verwenden, werden alle Daten in der Datei automatisch importiert, aber Aspose.Cells unterstützt auch den Import von Daten aus verschiedenen Datenquellen. Einige dieser Datenquellen sind unten aufgeführt:

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

Aspose.Cells bietet eine Klasse, Workbook, die eine Excel-Datei repräsentiert. Die Klasse Workbook enthält eine Worksheets-Sammlung, die den Zugriff auf jedes Tabellenblatt in der Excel-Datei ermöglicht. Ein Tabellenblatt wird durch die Klasse Worksheet repräsentiert. Die Klasse Worksheet bietet eine Cells-Sammlung.

Die Cells-Sammlung bietet sehr nützliche Methoden zum Importieren von Daten aus verschiedenen Datenquellen.

Importieren aus einem Arrays

Entwickler können Daten aus einem Array in ihre Tabellenblätter importieren, indem sie die Methode ImportArray der Cells-Sammlung aufrufen. Es gibt viele überladene Versionen der ImportArray Methode, aber eine typische Überladung nimmt die folgenden Parameter an:

  • Array, repräsentiert das Array-Objekt, dessen Inhalt importiert werden muss
  • Zeilennummer, repräsentiert die Zeilennummer der ersten Zelle, in die die Daten importiert werden
  • Spaltennummer, repräsentiert die Spaltennummer der ersten Zelle, in die die Daten importiert werden
  • Ist vertikal, ein boolescher Wert, der angibt, ob die Daten vertikal oder horizontal importiert werden sollen
//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");

Importieren aus einer ArrayList

Entwickler können Daten aus einem ArrayList in ihre Tabellenblätter importieren, indem sie die ImportArrayList-Methode der Cells-Sammlung aufrufen. Die ImportArray Methode nimmt die folgenden Parameter an: ArrayList , repräsentiert das ArrayList-Objekt, dessen Inhalt importiert werden muss

  • Zeilennummer , repräsentiert die Zeilennummer der ersten Zelle, in die die Daten importiert werden
  • Spaltennummer , repräsentiert die Spaltennummer der ersten Zelle, in die die Daten importiert werden
  • Ist vertikal , ein boolescher Wert, der angibt, ob die Daten vertikal oder horizontal importiert werden sollen
//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");

Importieren aus benutzerdefinierten Objekten

Entwickler können Daten aus einer Sammlung von Objekten in ein Tabellenblatt importieren, indem sie ImportCustomObjects verwenden. Sie können der Methode eine Liste von Spalten/Eigenschaften bereitstellen, um Ihre gewünschte Liste von Objekten anzuzeigen.

//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");

Importieren aus einer DataTable

Entwickler können Daten aus einem DataTable in ihre Tabellenblätter importieren, indem sie die ImportDataTable-Methode der Cells-Sammlung aufrufen. Es gibt viele überladene Versionen der ImportDataTable-Methode, aber eine typische Überladung nimmt die folgenden Parameter an: DataTable , repräsentiert das DataTable-Objekt, dessen Inhalt importieren werden soll

  • Wird Feldname angezeigt, gibt an, ob die Namen der Spalten des DataTable als erste Zeile in das Arbeitsblatt importiert werden sollen oder nicht
  • Startzelle, repräsentiert den Namen der Startzelle (d.h. “A1”), von der aus die Inhalte des DataTables importiert werden sollen
//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");

Beispielcode herunterladen

Daten aus Dokument exportieren

Aspose.Cells ermöglicht es nicht nur den Benutzern, Daten aus externen Datenquellen in Tabellenblätter zu importieren, sondern erlaubt es ihnen auch, ihre Tabellenblattdaten in eine DataTable zu exportieren. Da DataTable ein Teil von ADO.NET ist und zum Halten von Daten verwendet wird. Sobald die Daten in einer DataTable gespeichert sind, können sie nach den Anforderungen der Benutzer beliebig verwendet werden.

Datenexport nach DataTable (.NET) mit Aspose.Cells

Entwickler können ihre Tabellenblattdaten mühelos in ein DataTable-Objekt exportieren, indem sie entweder die Methode ExportDataTable oder die Methode ExportDataTableAsString der Klasse Cells aufrufen. Beide Methoden werden in verschiedenen Szenarien verwendet, die nachfolgend genauer erläutert werden.

Spalten mit stark typisierten Daten

Wir wissen, dass eine Tabelle Daten als Sequenz von Zeilen und Spalten speichert. Wenn alle Werte in den Spalten eines Tabellenblatts stark typisiert sind (das bedeutet, dass alle Werte in einer Spalte den gleichen Datentyp haben müssen), dann können wir den Inhalt des Tabellenblatts exportieren, indem wir die Methode ExportDataTable der Cells-Klasse aufrufen. Die ExportDataTable-Methode nimmt die folgenden Parameter an, um die Daten des Tabellenblatts als DataTable-Objekt zu exportieren: Zeilennummer , repräsentiert die Zeilennummer der ersten Zelle, von der die Daten exportiert werden

  • Spaltennummer , repräsentiert die Spaltennummer der ersten Zelle, von der die Daten exportiert werden
  • Anzahl der Zeilen , repräsentiert die Anzahl der zu exportierenden Zeilen
  • Anzahl der Spalten , repräsentiert die Anzahl der zu exportierenden Spalten
  • Spaltennamen exportieren , eine boolesche Eigenschaft, die angibt, ob die Daten in der ersten Zeile des Tabellenblatts als Spaltennamen des DataTable exportiert werden sollen oder nicht
//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();

Spalten mit nicht stark typisierten Daten

Wenn alle Werte in den Spalten eines Arbeitsblatts nicht stark typisiert sind (das bedeutet, dass die Werte in einer Spalte verschiedene Datentypen haben können), dann können wir den Arbeitsblattinhalt exportieren, indem wir die Methode ExportDataTableAsString der Cells-Klasse aufrufen. Die Methode ExportDataTableAsString nimmt denselben Satz von Parametern wie die Methode ExportDataTable an, um die Arbeitsblattdaten als DataTable-Objekt zu exportieren.

//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();

Beispielcode herunterladen