Agregar y recuperar datos
Añadir datos a las celdas
Aspose.Cells proporciona una clase Workbook que representa un archivo de Excel de Microsoft. La clase Workbook contiene una colección de Worksheets que permite el acceso 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. Cada elemento en la colección de Cells representa un objeto de la clase Cell
Aspose.Cells permite a los desarrolladores agregar datos a las celdas en hojas de cálculo llamando al método PutValue de la clase Cell. Aspose.Cells proporciona versiones sobrecargadas del método PutValue que permite a los desarrolladores agregar diferentes tipos de datos a las celdas. Utilizando estas versiones sobrecargadas del método PutValue, es posible agregar valores booleanos, de cadena, dobles, enteros o fecha/hora, etc. a la celda.
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(); |
Mejorando la eficiencia
Si usas el método PutValue para agregar una gran cantidad de datos a una hoja de cálculo, debes agregar valores a las celdas primero por filas y luego por columnas. Este enfoque mejora enormemente la eficiencia de tus aplicaciones.
Recuperación de datos de celdas
Aspose.Cells proporciona una clase Workbook que representa un archivo de Microsoft Excel. La clase Workbook contiene una colección de Worksheets que permite acceder a las hojas de cálculo en el archivo. Una hoja de cálculo está representada por la clase Worksheet. La clase Worksheet proporciona una colección de Cells. Cada elemento de la colección Cells representa un objeto de la clase Cell.
La clase Cell proporciona varios métodos que permiten a los desarrolladores recuperar valores de las celdas de acuerdo a sus tipos de datos. Estos métodos incluyen:
- GetStringValue, devuelve el valor de cadena de la celda.
- GetDoubleValue, devuelve el valor doble de la celda.
- GetBoolValue, devuelve el valor booleano de la celda.
- GetDateTimeValue, devuelve el valor de fecha/hora de la celda.
- GetFloatValue, devuelve el valor flotante de la celda.
- GetIntValue, devuelve el valor entero de la celda.
Cuando un campo no está lleno, las celdas con GetDoubleValue o GetFloatValue lanzan una excepción.
El tipo de datos contenido en una celda también se puede verificar utilizando el método GetType de la clase Cell. De hecho, el método GetType de la clase Cell se basa en la enumeración CellValueType cuyos valores predefinidos se enumeran a continuación:
Tipos de Valor de Celda | Descripción |
---|---|
CellValueType_IsBool | Especifica que el valor de la celda es Booleano. |
CellValueType_IsDateTime | Especifica que el valor de la celda es fecha/hora. |
CellValueType_IsNull | Representa una celda en blanco. |
CellValueType_IsNumeric | Especifica que el valor de la celda es numérico. |
CellValueType_IsString | Especifica que el valor de la celda es de cadena. |
CellValueType_IsUnknown | Especifica que el valor de la celda es desconocido. |
También puedes usar los tipos de valor de celda predefinidos anteriores para comparar con el tipo de dato presente en cada celda. |
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(); |