Gestionar datos de archivos de Excel
Cómo agregar datos a las celdas
Aspose.Cells for JavaScript mediante C++ proporciona una clase, Workbook, que representa un archivo de Microsoft Excel. La clase Workbook contiene una colección worksheets que permite acceder 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 cells. Cada elemento en la colección 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 permiten a los desarrolladores agregar diferentes tipos de datos a las celdas. Usando estas versiones sobrecargadas del método putValue, es posible agregar valores booleanos, cadenas, doble, enteros, o fecha/hora, etc.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
// If a file is provided, open it; otherwise create a new workbook
let workbook;
if (fileInput.files.length) {
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
workbook = new Workbook(new Uint8Array(arrayBuffer));
} else {
workbook = new Workbook();
}
// Obtaining the reference of the first worksheet
const worksheet = workbook.worksheets.get(0);
// Adding values to cells
const cells = worksheet.cells;
const cellA1 = cells.get("A1");
cellA1.value = "Hello World";
const cellA2 = cells.get("A2");
cellA2.value = 20.5;
const cellA3 = cells.get("A3");
cellA3.value = 15;
const cellA4 = cells.get("A4");
cellA4.value = true;
const cellA5 = cells.get("A5");
cellA5.value = new Date();
// Setting the display format of the date
let style = cellA5.style;
style.number = 15;
cellA5.style = style;
// Saving the Excel file
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Workbook created/modified successfully. Click the download link to get the file.</p>';
});
</script>
</html>
Cómo mejorar la eficiencia
Si usas el método putValue para poner una gran cantidad de datos en una hoja, deberías agregar valores a las celdas, primero por filas y luego por columnas. Este enfoque mejora mucho la eficiencia de tus aplicaciones.
Cómo recuperar datos de las celdas
Aspose.Cells for JavaScript vía C++ proporciona una clase, Workbook que representa un archivo de Microsoft Excel. La clase Workbook contiene una colección 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 cells. Cada elemento en la colección cells representa un objeto de la clase Cell.
La clase Cell proporciona varias propiedades que permiten a los desarrolladores obtener valores de las celdas según sus tipos de datos. Estas propiedades incluyen:
- stringValue: devuelve el valor de cadena de la celda.
- doubleValue: devuelve el valor doble de la celda.
- boolValue: devuelve el valor booleano de la celda.
- dateTimeValue: devuelve el valor de fecha/hora de la celda.
- floatValue: devuelve el valor flotante de la celda.
- intValue: devuelve el valor entero de la celda.
Cuando un campo no está lleno, celdas con doubleValue o floatValue lanzan una excepción.
El tipo de datos contenido en una celda también puede verificarse usando el método type de la clase Cell. De hecho, el método type de la clase Cell se basa en la enumeración CellValueType, cuyos valores predefinidos se listan a continuación:
| Tipos de Valor de Celda | Descripción |
|---|---|
| IsBool | Especifica que el valor de la celda es Booleano. |
| IsDateTime | Especifica que el valor de la celda es fecha/hora. |
| IsNull | Representa una celda en blanco. |
| IsNumeric | Especifica que el valor de la celda es numérico. |
| IsString | Especifica que el valor de la celda es una cadena de texto. |
| IsUnknown | Especifica que el valor de la celda es desconocido. |
También puedes usar los tipos de valor predeterminado de celda anteriores para comparar con el tipo de dato presente en cada celda.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Read Cell Values Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, Worksheet, Cell } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
if (!fileInput.files.length) {
document.getElementById('result').innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Opening an existing workbook from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Accessing first worksheet
const worksheet = workbook.worksheets.get(0);
var cells = worksheet.cells;
var maxRow = cells.maxRow;
var maxColumn = cells.maxColumn;
let logs = [];
for (let i = 0; i <= maxRow; i++) {
for (let j = 0; j <= maxColumn; j++)
{
const cell1 = cells.get(i, j);
if (!cell1) {
continue;
}
// Variables to store values of different data types
let stringValue;
let doubleValue;
let boolValue;
let dateTimeValue;
// Passing the type of the data contained in the cell for evaluation
switch (cell1.type) {
// Evaluating the data type of the cell data for string value
case AsposeCells.CellValueType.IsString:
stringValue = cell1.stringValue;
console.log("String Value: " + stringValue);
logs.push("String Value: " + stringValue);
break;
// Evaluating the data type of the cell data for double value
case AsposeCells.CellValueType.IsNumeric:
doubleValue = cell1.doubleValue;
console.log("Double Value: " + doubleValue);
logs.push("Double Value: " + doubleValue);
break;
// Evaluating the data type of the cell data for boolean value
case AsposeCells.CellValueType.IsBool:
boolValue = cell1.boolValue;
console.log("Bool Value: " + boolValue);
logs.push("Bool Value: " + boolValue);
break;
// Evaluating the data type of the cell data for date/time value
case AsposeCells.CellValueType.IsDateTime:
dateTimeValue = cell1.dateTimeValue;
console.log("DateTime Value: " + dateTimeValue);
logs.push("DateTime Value: " + dateTimeValue);
break;
// Evaluating the unknown data type of the cell data
case AsposeCells.CellValueType.IsUnknown:
stringValue = cell1.stringValue;
console.log("Unknown Value: " + stringValue);
logs.push("Unknown Value: " + stringValue);
break;
// Terminating the type checking of type of the cell data is null
case AsposeCells.CellValueType.IsNull:
break;
}
}
}
document.getElementById('result').innerHTML = `<p style="color: green;">Operation completed successfully! See console for detailed cell values.</p><pre>${logs.join("\n")}</pre>`;
});
</script>
</html>
Temas avanzados
- Accediendo a celdas de una hoja de cálculo
- Convertir datos numéricos de texto a número
- Crear subtotales
- Filtrado de datos
- Ordenación de datos
- Validación de datos
- Buscar o buscar datos
- Obtener el valor de cadena de celda con y sin formato
- Añadir Texto Enriquecido HTML dentro de la Celda
- Insertar hipervínculos en Excel u OpenOffice
- Cómo y dónde utilizar enumeradores
- Medir el ancho y alto del valor de la celda en unidades de píxeles
- Lectura de valores de celda en múltiples hilos simultáneamente
- Conversión entre el nombre de la celda y el índice de fila/columna
- Poblar datos primero por fila luego por columna
- Preservar el prefijo de comilla simple del valor de la celda o rango
- Acceder y actualizar partes de texto enriquecido de la celda