Добавление и извлечение данных
Добавление данных в ячейки
Aspose.Cells предоставляет класс Workbook, представляющий файл Microsoft Excel. Класс Workbook содержит коллекцию Worksheets, позволяющую получить доступ к каждому рабочему листу в файле Excel. Рабочий лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию Cells. Каждый элемент в коллекции Cells представляет объект класса Cell.
Aspose.Cells позволяет разработчикам добавлять данные в ячейки рабочих листов, вызывая метод класса Cell PutValue. Aspose.Cells предоставляет перегруженные версии метода PutValue, которые позволяют добавлять различные типы данных в ячейки. Используя эти перегруженные версии метода PutValue, можно добавить значения логического, строкового, вещественного, целочисленного или даты/времени и т. д. в ячейку.
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(); |
Повышение эффективности
Если вы используете метод PutValue для вставки большого количества данных в рабочий лист, вы должны добавлять значения в ячейки сначала по строкам, а затем по столбцам. Этот подход значительно повышает эффективность ваших приложений.
Извлечение данных из ячеек
Aspose.Cells предоставляет класс Workbook, представляющий файл Microsoft Excel. Класс Workbook содержит коллекцию Worksheets, позволяющую доступ к рабочим листам в файле. Рабочий лист представлен классом Worksheet. Класс Worksheet предоставляет коллекцию Cells. Каждый элемент коллекции Cells представляет объект класса Cell.
Класс Cell предоставляет несколько методов, которые позволяют разработчикам извлекать значения из ячеек в соответствии с их типами данных. К ним относятся:
- GetStringValue, возвращает строковое значение ячейки.
- GetDoubleValue, возвращает вещественное значение ячейки.
- GetBoolValue, возвращает логическое значение ячейки.
- GetDateTimeValue, возвращает дату/время значения ячейки.
- GetFloatValue, возвращает значение с плавающей точкой ячейки.
- GetIntValue, возвращает целочисленное значение ячейки.
Когда поле не заполнено, ячейки с GetDoubleValue или GetFloatValue вызывают исключение.
Тип данных, содержащихся в ячейке, также можно проверить с помощью метода GetType класса Cell. Фактически, метод GetType класса Cell основан на перечислении CellValueType, чьи предопределенные значения перечислены ниже:
Типы Значений Ячеек | Описание |
---|---|
CellValueType_IsBool | Указывает, что значение ячейки является логическим. |
CellValueType_IsDateTime | Указывает, что значение ячейки является датой/временем. |
CellValueType_IsNull | Представляет пустую ячейку. |
CellValueType_IsNumeric | Указывает, что значение ячейки является числовым. |
CellValueType_IsString | Указывает, что значение ячейки является строкой. |
CellValueType_IsUnknown | Указывает, что значение ячейки неизвестно. |
Вы также можете использовать вышеупомянутые предопределенные типы значений ячеек для сравнения с типом данных, присутствующим в каждой ячейке. |
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(); |