Cargar o importar archivo CSV con fórmulas via JavaScript
Contents
[
Hide
]
Los archivos CSV contienen principalmente datos textuales y no contienen fórmulas. Sin embargo, a veces sucede que los archivos CSV también contienen fórmulas. Dichos archivos CSV deben cargarse configurando TxtLoadOptions.hasFormula en true. Una vez establecida esta propiedad en true, Aspose.Cells no tratará las fórmulas como texto simple, sino que las tratará como fórmulas, y el motor de cálculo de fórmulas de Aspose.Cells las procesará como de costumbre.
El siguiente código ilustra cómo cargar e importar un archivo CSV con fórmulas. Puede usar cualquier archivo CSV. Para propósitos ilustrativos, usamos el archivo CSV simple que contiene estos datos. Como puede ver, contiene una fórmula.
<!DOCTYPE html>
<html>
<head>
<title>Load CSV with Formulas and Save as XLSX</title>
</head>
<body>
<h1>Load CSV with Formulas and Save as XLSX</h1>
<input type="file" id="fileInput" accept=".csv" />
<button id="convertToXlsx">Convert to XLSX</button>
<a id="downloadLink" style="display: none;">Download XLSX</a>
<div id="result"></div>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, TxtLoadOptions, SaveFormat } = AsposeCells;
AsposeCells.onReady().then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('convertToXlsx').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
if (!fileInput.files.length) {
document.getElementById('result').innerHTML = '<p style="color: red;">Please select a CSV file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
const loadOptions = new TxtLoadOptions();
loadOptions.hasFormula = true;
const workbook = new Workbook(new Uint8Array(arrayBuffer), loadOptions);
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = file.name.replace(/\.csv$/i, '.xlsx');
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download XLSX File';
document.getElementById('result').innerHTML = '<p style="color: green;">Conversion completed! Click the download link to get the XLSX file.</p>';
});
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells CSV Load Example</title>
</head>
<body>
<h1>Load CSV with Formulas and Save as XLSX</h1>
<input type="file" id="fileInput" accept=".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, TxtLoadOptions, Utils } = 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 a CSV file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
const bytes = new Uint8Array(arrayBuffer);
// TxtLoadOptions configuration
const opts = new TxtLoadOptions();
opts.separator = ',';
opts.hasFormula = true;
// Load your CSV file with formulas in a Workbook object
const workbook = new Workbook(bytes, opts);
// You can also import your CSV file like this
// The code below is importing CSV file starting from cell D4 (rowIndex=3, colIndex=3)
const worksheet = workbook.worksheets.get(0);
worksheet.cells.importCSV(bytes, opts, 3, 3);
// Save your workbook in Xlsx format
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Operation completed successfully! Click the download link to get the converted file.</p>';
});
</script>
</html>
El código primero carga el archivo CSV, luego lo importa nuevamente en la celda D4. Finalmente, guarda el objeto libro en formato XLSX. El archivo XLSX de salida se ve así. Como puede ver, las celdas C3 y F4 contienen fórmulas y su resultado es 800.
![]() |
|---|
