将Excel工作簿转换为Ods、Sxc和Fods(OpenOffice / LibreOffice calc) via JavaScript
Contents
[
Hide
]
关于OpenDocument
OpenDocument format (ODF)是一种免费开放的用于电子办公文档的文件格式,最初由Sun开发用于Open Office套件。 OpenDocument Spreadsheet (ODS)是Excel文档的文件格式。 OpenDocument目前是OASIS和ISO标准。
将Ods(OpenOffice / LibreOffice calc)转换为Excel
Aspose.Cells for JavaScript通过C++支持加载由OpenOffice / LibreOffice Calc支持的Ods、Sxc和Fods文件,并将Ods、Sxc和Fods转换为Excel文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Aspose.Cells Example</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
.links a { display: inline-block; margin-right: 10px; margin-top: 10px; }
#result p { margin: 10px 0; }
</style>
</head>
<body>
<h1>Convert Excel to ODS / SXC / FODS</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<div class="links">
<a id="downloadLinkOds" style="display: none;">Download ODS</a>
<a id="downloadLinkSxc" style="display: none;">Download SXC</a>
<a id="downloadLinkFods" style="display: none;">Download FODS</a>
</div>
<div id="result"></div>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, Worksheet, Cell, 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 downloadOds = document.getElementById('downloadLinkOds');
const downloadSxc = document.getElementById('downloadLinkSxc');
const downloadFods = document.getElementById('downloadLinkFods');
// Clear previous links/messages
downloadOds.style.display = 'none';
downloadSxc.style.display = 'none';
downloadFods.style.display = 'none';
resultDiv.innerHTML = '';
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();
// Instantiate workbook from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Save as ODS
const outputOdsData = workbook.save(SaveFormat.Ods);
const blobOds = new Blob([outputOdsData]);
downloadOds.href = URL.createObjectURL(blobOds);
downloadOds.download = 'ods_out.ods';
downloadOds.style.display = 'inline-block';
downloadOds.textContent = 'Download ods_out.ods';
// Save as SXC
const outputSxcData = workbook.save(SaveFormat.Sxc);
const blobSxc = new Blob([outputSxcData]);
downloadSxc.href = URL.createObjectURL(blobSxc);
downloadSxc.download = 'sxc_out.sxc';
downloadSxc.style.display = 'inline-block';
downloadSxc.textContent = 'Download sxc_out.sxc';
// Save as FODS
const outputFodsData = workbook.save(SaveFormat.Fods);
const blobFods = new Blob([outputFodsData]);
downloadFods.href = URL.createObjectURL(blobFods);
downloadFods.download = 'fods_out.fods';
downloadFods.style.display = 'inline-block';
downloadFods.textContent = 'Download fods_out.fods';
resultDiv.innerHTML = '<p style="color: green;">Files generated successfully. Use the links above to download.</p>';
});
</script>
</html>
将Excel转换为Ods(OpenOffice / LibreOffice Calc)
Aspose.Cells for JavaScript通过C++支持将Excel文件转换为Ods、Sxc和Fods文件。下面的代码示例展示了如何将模板转换为Ods、Sxc和Fods文件。
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Save Workbook to ODS / SXC / FODS</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<div>
<a id="downloadLinkOds" style="display: none; margin-right: 8px;">Download Out.ods</a>
<a id="downloadLinkSxc" style="display: none; margin-right: 8px;">Download Out.sxc</a>
<a id="downloadLinkFods" style="display: none;">Download Out.fods</a>
</div>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, 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 an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Load your source workbook
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Save as ods file
const odsData = workbook.save(SaveFormat.Ods);
const blobOds = new Blob([odsData]);
const downloadLinkOds = document.getElementById('downloadLinkOds');
downloadLinkOds.href = URL.createObjectURL(blobOds);
downloadLinkOds.download = 'Out.ods';
downloadLinkOds.style.display = 'inline-block';
downloadLinkOds.textContent = 'Download Out.ods';
// Save as sxc file
const sxcData = workbook.save(SaveFormat.Sxc);
const blobSxc = new Blob([sxcData]);
const downloadLinkSxc = document.getElementById('downloadLinkSxc');
downloadLinkSxc.href = URL.createObjectURL(blobSxc);
downloadLinkSxc.download = 'Out.sxc';
downloadLinkSxc.style.display = 'inline-block';
downloadLinkSxc.textContent = 'Download Out.sxc';
// Save as fods file
const fodsData = workbook.save(SaveFormat.Fods);
const blobFods = new Blob([fodsData]);
const downloadLinkFods = document.getElementById('downloadLinkFods');
downloadLinkFods.href = URL.createObjectURL(blobFods);
downloadLinkFods.download = 'Out.fods';
downloadLinkFods.style.display = 'inline-block';
downloadLinkFods.textContent = 'Download Out.fods';
document.getElementById('result').innerHTML = '<p style="color: green;">Files generated. Click the download links to get the converted files.</p>';
});
</script>
</html>