Ajustar el nivel de compresión del libro de trabajo con JavaScript vía C++
Contents
[
Hide
]
Ajustar el Nivel de Compresión del Libro de Trabajo
Los desarrolladores pueden ajustar el nivel de compresión del libro de trabajo al tratar con libros grandes. Los desarrolladores pueden priorizar tamaños de archivo más pequeños sobre el tiempo de procesamiento o viceversa. Aspose.Cells for JavaScript vía C++ proporciona la enumeración OoxmlCompressionType que puedes usar para establecer el nivel de compresión del libro de trabajo. La enumeración OoxmlCompressionType proporciona los siguientes miembros.
- Nivel1: La compresión más rápida pero menos eficiente.
- Nivel2: Un poco más lento, pero mejor que el nivel 1.
- Nivel 3: Un poco más lento, pero mejor, que el nivel 2.
- Nivel 4: Un poco más lento, pero mejor, que el nivel 3.
- Nivel5: Un poco más lento que el nivel 4, pero con una mejor compresión.
- Nivel6: Un buen equilibrio entre velocidad y eficiencia de compresión.
- Nivel 7: ¡Compresión bastante buena!
- Nivel8: ¡Mejor compresión que Nivel7!
- Nivel 9: La compresión “mejor”, donde mejor significa la mayor reducción en el tamaño del flujo de datos de entrada. Esta también es la compresión más lenta.
El siguiente fragmento de código demuestra el uso de la enumeración OoxmlCompressionType y compara el tiempo de conversión para Nivel1, Nivel6 y Nivel9. También puedes comparar los tamaños de los archivos generados.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example - Save XLSB with Compression Levels</title>
</head>
<body>
<h1>Save XLSB with Different Compression Levels</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.xlsb" />
<button id="runExample">Run Example</button>
<div>
<a id="downloadLink1" style="display: none; margin-right:10px;"></a>
<a id="downloadLink2" style="display: none; margin-right:10px;"></a>
<a id="downloadLink3" style="display: none;"></a>
</div>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, XlsbSaveOptions, OoxmlCompressionType, 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');
const resultDiv = document.getElementById('result');
const downloadLink1 = document.getElementById('downloadLink1');
const downloadLink2 = document.getElementById('downloadLink2');
const downloadLink3 = document.getElementById('downloadLink3');
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiating a Workbook object by opening the selected file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Create Xlsb save options
const options = new XlsbSaveOptions();
// Level 1
let start = performance.now();
options.compressionType = OoxmlCompressionType.Level1;
const outputData1 = workbook.save(SaveFormat.Xlsb, options);
let elapsedMs1 = performance.now() - start;
const blob1 = new Blob([outputData1]);
downloadLink1.href = URL.createObjectURL(blob1);
downloadLink1.download = 'LargeSampleFile_level_1_out.xlsb';
downloadLink1.style.display = 'inline-block';
downloadLink1.textContent = 'Download Level 1 XLSB';
// Level 6
start = performance.now();
options.compressionType = OoxmlCompressionType.Level6;
const outputData2 = workbook.save(SaveFormat.Xlsb, options);
let elapsedMs2 = performance.now() - start;
const blob2 = new Blob([outputData2]);
downloadLink2.href = URL.createObjectURL(blob2);
downloadLink2.download = 'LargeSampleFile_level_6_out.xlsb';
downloadLink2.style.display = 'inline-block';
downloadLink2.textContent = 'Download Level 6 XLSB';
// Level 9
start = performance.now();
options.compressionType = OoxmlCompressionType.Level9;
const outputData3 = workbook.save(SaveFormat.Xlsb, options);
let elapsedMs3 = performance.now() - start;
const blob3 = new Blob([outputData3]);
downloadLink3.href = URL.createObjectURL(blob3);
downloadLink3.download = 'LargeSampleFile_level_9_out.xlsb';
downloadLink3.style.display = 'inline-block';
downloadLink3.textContent = 'Download Level 9 XLSB';
resultDiv.innerHTML = `
<p style="color: green;">Operation completed successfully!</p>
<ul>
<li>Level 1 Elapsed Time: ${elapsedMs1.toFixed(2)} ms</li>
<li>Level 6 Elapsed Time: ${elapsedMs2.toFixed(2)} ms</li>
<li>Level 9 Elapsed Time: ${elapsedMs3.toFixed(2)} ms</li>
</ul>
`;
});
</script>
</html>