Добавление и извлечение данных

Добавление данных в ячейки

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