Daten hinzufügen und abrufen
Hinzufügen von Daten zu Zellen
Aspose.Cells bietet eine Klasse Workbook, die eine Microsoft Excel-Datei darstellt. Die Workbook-Klasse enthält eine Worksheets-Sammlung, die den Zugriff auf jedes Arbeitsblatt in der Excel-Datei ermöglicht. Ein Arbeitsblatt wird durch die Worksheet-Klasse repräsentiert. Die Worksheet-Klasse stellt eine Cells-Sammlung bereit. Jedes Element in der Cells-Sammlung repräsentiert ein Objekt der Cell-Klasse.
Aspose.Cells ermöglicht es Entwicklern, Daten den Zellen in Arbeitsblättern hinzuzufügen, indem sie die PutValue-Methode der Cell-Klasse aufrufen. Aspose.Cells bietet überladene Versionen der PutValue-Methode, die es Entwicklern ermöglichen, verschiedene Arten von Daten zu Zellen hinzuzufügen. Mit diesen überladenen Versionen der PutValue-Methode ist es möglich, einen booleschen Wert, einen String, einen Double, einen Integer oder ein Datum/Zeit usw. den Zellen hinzuzufügen.
Aspose::Cells::Startup(); | |
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
//Path of input | |
U16String dirPath(u""); | |
//Path of output | |
U16String outPath(u""); | |
//Path of input excel file | |
U16String sampleData = dirPath + u"sampleData.xlsx"; | |
//Path of output excel file | |
U16String outputData = outPath + u"outputData.xlsx"; | |
//Read input excel file | |
Workbook workbook(sampleData); | |
//Accessing the second worksheet in the Excel file | |
Worksheet worksheet = workbook.GetWorksheets().Get(1); | |
//Adding a string value to the cell | |
worksheet.GetCells().Get(u"A1").PutValue(u"Hello World"); | |
//Adding a double value to the cell | |
worksheet.GetCells().Get(u"A2").PutValue(20.5); | |
//Adding an integer value to the cell | |
worksheet.GetCells().Get(u"A3").PutValue(15); | |
//Adding a boolean value to the cell | |
worksheet.GetCells().Get(u"A4").PutValue(true); | |
//Setting the display format of the date | |
Cell cell = worksheet.GetCells().Get(u"A5"); | |
Style style = cell.GetStyle(); | |
style.SetNumber(15); | |
cell.SetStyle(style); | |
//Save the workbook | |
workbook.Save(outputData); | |
Aspose::Cells::Cleanup(); |
Effizienz verbessern
Wenn Sie die PutValue-Methode verwenden, um eine große Menge von Daten in ein Arbeitsblatt einzufügen, sollten Sie zuerst Werte zeilenweise und dann spaltenweise hinzufügen. Dieser Ansatz verbessert erheblich die Effizienz Ihrer Anwendungen.
Abrufen von Daten aus Zellen
Aspose.Cells bietet eine Klasse Workbook, die eine Microsoft Excel-Datei darstellt. Die Workbook-Klasse enthält eine Worksheets-Sammlung, die den Zugriff auf Arbeitsblätter in der Datei ermöglicht. Ein Arbeitsblatt wird durch die Worksheet-Klasse repräsentiert. Die Worksheet-Klasse stellt eine Cells-Sammlung bereit. Jedes Element in der Cells-Sammlung repräsentiert ein Objekt der Cell-Klasse.
Die Cell-Klasse bietet mehrere Methoden, mit denen Entwickler Werte aus den Zellen entsprechend ihrer Datentypen abrufen können. Diese Methoden umfassen:
- GetStringValue, gibt den Zeichenfolgenwert der Zelle zurück.
- GetDoubleValue, gibt den Dezimalwert der Zelle zurück.
- GetBoolValue, gibt den booleschen Wert der Zelle zurück.
- GetDateTimeValue, gibt den Datum/Uhrzeit-Wert der Zelle zurück.
- GetFloatValue, gibt den Float-Wert der Zelle zurück.
- GetIntValue, gibt den Ganzzahl-Wert der Zelle zurück.
Wenn ein Feld nicht ausgefüllt ist, lösen Zellen mit GetDoubleValue oder GetFloatValue eine Ausnahme aus.
Der Datentyp, der in einer Zelle enthalten ist, kann auch mit Hilfe der Methode GetType der Klasse Cell überprüft werden. Tatsächlich basiert die Methode GetType der Klasse Cell auf der Enumeration CellValueType, deren vordefinierte Werte unten aufgeführt sind:
Zellwerttypen | Beschreibung |
---|---|
CellValueType_IsBool | Gibt an, dass der Zellwert boolesch ist. |
CellValueType_IsDateTime | Gibt an, dass der Zellwert Datum/Uhrzeit ist. |
CellValueType_IsNull | Stellt eine leere Zelle dar. |
CellValueType_IsNumeric | Gibt an, dass der Zellwert numerisch ist. |
CellValueType_IsString | Gibt an, dass der Zellwert ein String ist. |
CellValueType_IsUnknown | Gibt an, dass der Zellwert unbekannt ist. |
Sie können auch die oben definierten Zellwerttypen verwenden, um mit dem Typ der Daten in jeder Zelle zu vergleichen. |
Aspose::Cells::Startup(); | |
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C | |
//Path of input | |
U16String dirPath(u""); | |
//Path of output | |
U16String outPath(u""); | |
//Path of input excel file | |
U16String sampleData = dirPath + u"sampleData.xlsx"; | |
//Read input excel file | |
Workbook workbook(sampleData); | |
//Accessing the third worksheet in the Excel file | |
Worksheet worksheet = workbook.GetWorksheets().Get(2); | |
//Get cells from sheet | |
Cells cells = worksheet.GetCells(); | |
//Variable declarations | |
U16String strVal; | |
Date dateVal; | |
double dblVal; | |
bool boolVal; | |
Enumerator<Cell> enCell = cells.GetEnumerator(); | |
while (enCell.MoveNext()) | |
{ | |
Cell cell = enCell.GetCurrent(); | |
switch (cell.GetType()) | |
{ | |
//Evaluating the data type of the cell data for string value | |
case CellValueType::IsString: | |
std::cout <<"Cell Value Type Is String." << std::endl; | |
strVal = cell.GetStringValue(); | |
break; | |
//Evaluating the data type of the cell data for double value | |
case CellValueType::IsNumeric: | |
std::cout <<"Cell Value Type Is Numeric." << std::endl; | |
dblVal = cell.GetDoubleValue(); | |
break; | |
//Evaluating the data type of the cell data for boolean value | |
case CellValueType::IsBool: | |
std::cout <<"Cell Value Type Is Bool." << std::endl; | |
boolVal = cell.GetBoolValue(); | |
break; | |
//Evaluating the data type of the cell data for date/time value | |
case CellValueType::IsDateTime: | |
std::cout <<"Cell Value Type Is DateTime." << std::endl; | |
dateVal = cell.GetDateTimeValue(); | |
break; | |
//Evaluating the unknown data type of the cell data | |
case CellValueType::IsUnknown: | |
cell.GetStringValue(); | |
break; | |
default: | |
break; | |
} | |
} | |
Aspose::Cells::Cleanup(); |