Различные способы сохранения файлов с помощью JavaScript через C++
Различные способы сохранения файлов
Aspose.Cells предоставляет Workbook, который представляет файл Microsoft Excel и содержит свойства и методы, необходимые для работы с файлами Excel. Класс Workbook обеспечивает метод Workbook.save(string, SaveFormat), используемый для сохранения файлов Excel. Метод Workbook.save(string, SaveFormat) имеет множество перегрузок, которые позволяют сохранять файлы различными способами.
Формат файла, в который сохраняется файл, определяется перечислением SaveFormat
| Типы форматов файлов | Описание |
|---|---|
| CSV | Представляет собой файл CSV |
| Excel97To2003 | Представляет файл Excel 97 - 2003 |
| Xlsx | Представляет файл Excel 2007 XLSX |
| Xlsm | Представляет файл Excel 2007 XLSM |
| Xltx | Представляет шаблон файла Excel 2007 XLTX |
| Xltm | Представляет макросов Excel 2007 XLTM |
| Xlsb | Представляет двоичный файл Excel 2007 XLSB |
| SpreadsheetML | Представляет файл XML электронной таблицы |
| TSV | Представляет собой файл значений, разделенных табуляцией |
| TabDelimited | Представляет файл текста с табуляцией |
| ODS | Представляет собой файл ODS |
| Html | Представляет файл(ы) HTML |
| MHtml | Представляет файл(ы) MHTML |
| Представляет файл PDF | |
| XPS | Представляет документ XPS |
| TIFF | Представляет файл формата Tagged Image File Format (TIFF) |
Как сохранить файл в разных форматах
Чтобы сохранить файлы в хранилище, укажите имя файла (с полным путем хранения) и желаемый формат файла (из перечисления SaveFormat) при вызове метода Workbook.save(string, SaveFormat) объекта Workbook.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Aspose.Cells Save Formats Example</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
#downloadLinks a { display: block; margin: 6px 0; }
</style>
</head>
<body>
<h1>Aspose.Cells Save Formats Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.xlsb,.ods" />
<button id="runExample">Save in Multiple Formats</button>
<div id="result"></div>
<div id="downloadLinks"></div>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, XlsSaveOptions } = 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 result = document.getElementById('result');
const downloadLinks = document.getElementById('downloadLinks');
downloadLinks.innerHTML = '';
result.innerHTML = '';
if (!fileInput.files.length) {
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));
// Prepare format list to save
const formats = [
{ format: SaveFormat.Excel97To2003, name: 'output.xls', options: new XlsSaveOptions() },
{ format: SaveFormat.Xlsx, name: 'output.xlsx' },
{ format: SaveFormat.Xlsb, name: 'output.xlsb' },
{ format: SaveFormat.Ods, name: 'output.ods' },
{ format: SaveFormat.Pdf, name: 'output.pdf' },
{ format: SaveFormat.Html, name: 'output.html' },
{ format: SaveFormat.SpreadsheetML, name: 'output.xml' }
];
// Save in each format and create download link
for (let i = 0; i < formats.length; i++) {
const f = formats[i];
let outputData;
if (f.options) {
outputData = workbook.save(f.format, f.options);
} else {
outputData = workbook.save(f.format);
}
const blob = new Blob([outputData]);
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = f.name;
link.textContent = 'Download ' + f.name;
downloadLinks.appendChild(link);
}
result.innerHTML = '<p style="color: green;">Files saved in memory. Click the download links below to download each format.</p>';
});
</script>
</html>
Как сохранить книгу в Pdf
Формат документа Portable Document Format (PDF) — это тип документа, созданный Adobe в 1990-х годах. Цель этого формата — внедрить стандарт для представления документов и другого справочного материала в формате, независимом от программного обеспечения, аппаратных средств и операционной системы. Формат PDF полностью способен содержать информацию, такую как текст, изображения, гиперссылки, поля формы, богатые медиа, цифровые подписи, вложения, метаданные, геопространственные функции и 3D-объекты, которые могут стать частью исходного документа.
Следующий код показывает, как сохранить рабочую книгу в формате PDF с помощью Aspose.Cells:
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells Example - Save to PDF and PDF/A-1a</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<div>
<a id="downloadLink1" style="display: none; margin-right: 10px;"></a>
<a id="downloadLink2" 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, PdfSaveOptions, PdfCompliance } = 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();
// Instantiate Workbook from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Access the first worksheet and set value to A1
const worksheet = workbook.worksheets.get(0);
const cell = worksheet.cells.get("A1");
cell.value = "Hello World!";
// Save as PDF (first file)
const outputData1 = workbook.save(SaveFormat.Pdf);
const blob1 = new Blob([outputData1], { type: 'application/pdf' });
const downloadLink1 = document.getElementById('downloadLink1');
downloadLink1.href = URL.createObjectURL(blob1);
downloadLink1.download = 'pdf1.pdf';
downloadLink1.style.display = 'inline';
downloadLink1.textContent = 'Download pdf1.pdf';
// Save as PDF with PDF/A-1a compliance
const saveOptions = new PdfSaveOptions();
saveOptions.compliance = PdfCompliance.PdfA1a;
const outputData2 = workbook.save(SaveFormat.Pdf, saveOptions);
const blob2 = new Blob([outputData2], { type: 'application/pdf' });
const downloadLink2 = document.getElementById('downloadLink2');
downloadLink2.href = URL.createObjectURL(blob2);
downloadLink2.download = 'pdfa1a.pdf';
downloadLink2.style.display = 'inline';
downloadLink2.textContent = 'Download pdfa1a.pdf';
document.getElementById('result').innerHTML = '<p style="color: green;">PDF files generated successfully. Use the download links above.</p>';
});
</script>
</html>
Как сохранить книгу в формате текста или CSV
Иногда вам может потребоваться конвертировать или сохранить книгу с несколькими листами в текстовом формате. Для текстовых форматов (например, TXT, TabDelim, CSV и т. д.) как Microsoft Excel, так и Aspose.Cells по умолчанию сохраняют только содержимое активного листа.
Следующий пример кода показывает, как сохранить всю рабочую книгу в текстовом формате. Загрузите исходную рабочую книгу, которая может быть любым файлом таблицы Microsoft Excel или OpenOffice (например, XLS, XLSX, XLSM, XLSB, ODS и др.) с любым количеством листов.
При выполнении кода он преобразует данные всех листов рабочей книги в формат TXT
Вы можете изменить тот же пример для сохранения файла в формате CSV. По умолчанию TxtSaveOptions.separator — запятая, поэтому не указывайте разделитель при сохранении в CSV. Обратите внимание: если вы используете версию для оценки, и даже если свойство TxtSaveOptions.exportAllSheets установлено в true, программа все равно экспортирует только один лист.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example - Export Workbook to Txt</title>
</head>
<body>
<h1>Export Workbook to Txt Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Export to TXT</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, TxtSaveOptions } = 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));
// Text save options. You can use any type of separator
const opts = new TxtSaveOptions();
opts.separator = '\t';
opts.exportAllSheets = true;
// Save entire workbook data into file (Tab delimited)
const outputData = workbook.save(SaveFormat.TabDelimited, opts);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'out.txt';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Text File';
document.getElementById('result').innerHTML = '<p style="color: green;">Workbook exported to TXT successfully! Click the download link to get the file.</p>';
});
</script>
</html>
Как сохранить файл в текстовые файлы с пользовательским разделителем
Текстовые файлы содержат данные электронных таблиц без форматирования. Файл представляет собой своего рода обычный текстовый файл, который может содержать некоторые настраиваемые разделители между его данными.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Convert Excel to CSV (with custom separator)</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, TxtSaveOptions } = 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();
// Create a Workbook object and open the file from the uploaded data
const wb = new Workbook(new Uint8Array(arrayBuffer));
// Instantiate Text File's Save Options
const options = new TxtSaveOptions();
// Specify the separator
options.separator = ";";
// Save the file with the options (returns file data)
const outputData = wb.save(options);
const blob = new Blob([outputData], { type: 'text/csv' });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.csv';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download CSV File';
document.getElementById('result').innerHTML = '<p style="color: green;">File converted successfully! Click the download link to get the CSV file.</p>';
});
</script>
</html>
Как сохранить файл в поток
Чтобы сохранить файлы в поток, создайте объект MemoryStream или FileStream и сохраните файл в этот поток, вызвав метод Workbook.save(string, SaveFormat) объекта Workbook. Укажите желаемый формат файла с помощью перечисления SaveFormat при вызове метода Workbook.save(string, SaveFormat).
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Example Title</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');
const resultDiv = document.getElementById('result');
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();
// Load the workbook from the selected file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Save the workbook to a binary (xlsx) and provide it as a download
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
resultDiv.innerHTML = '<p style="color: green;">Operation completed successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Как сохранить файл Excel в файлы Html и Mht
Aspose.Cells может просто сохранять файл Excel, JSON, CSV или другие файлы, которые можно загрузить с помощью Aspose.Cells как .html и .mht файлы.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells MHTML Save Example</title>
</head>
<body>
<h1>Save Workbook to MHTML 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');
const resultDiv = document.getElementById('result');
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 Excel file through the file stream
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Saving the workbook to MHTML format
const outputData = workbook.save(SaveFormat.MHtml);
const blob = new Blob([outputData], { type: 'application/octet-stream' });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'out.mht';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download MHTML File';
resultDiv.innerHTML = '<p style="color: green;">Workbook saved to MHTML format successfully! Click the download link to get the file.</p>';
});
</script>
</html>
Как сохранить файл Excel в форматы OpenOffice (ODS, SXC, FODS, OTS)
Мы можем сохранять файлы в формат OpenOffice: ODS, SXC, FODS, OTS и др.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells Convert to ODS/SXC/FODS</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Convert and Save</button>
<div>
<a id="downloadOds" style="display: none; margin-right: 10px;">Download ODS File</a>
<a id="downloadSxc" style="display: none; margin-right: 10px;">Download SXC File</a>
<a id="downloadFods" style="display: none;">Download FODS File</a>
</div>
<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');
const resultDiv = document.getElementById('result');
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 odsData = workbook.save(SaveFormat.Ods);
const odsBlob = new Blob([odsData]);
const downloadOds = document.getElementById('downloadOds');
downloadOds.href = URL.createObjectURL(odsBlob);
downloadOds.download = 'Out.ods';
downloadOds.style.display = 'inline-block';
downloadOds.textContent = 'Download ODS File';
// Save as SXC
const sxcData = workbook.save(SaveFormat.Sxc);
const sxcBlob = new Blob([sxcData]);
const downloadSxc = document.getElementById('downloadSxc');
downloadSxc.href = URL.createObjectURL(sxcBlob);
downloadSxc.download = 'Out.sxc';
downloadSxc.style.display = 'inline-block';
downloadSxc.textContent = 'Download SXC File';
// Save as FODS
const fodsData = workbook.save(SaveFormat.Fods);
const fodsBlob = new Blob([fodsData]);
const downloadFods = document.getElementById('downloadFods');
downloadFods.href = URL.createObjectURL(fodsBlob);
downloadFods.download = 'Out.fods';
downloadFods.style.display = 'inline-block';
downloadFods.textContent = 'Download FODS File';
resultDiv.innerHTML = '<p style="color: green;">Files ready. Click the download links to save the converted files.</p>';
});
</script>
</html>
Как сохранить файл Excel в формат JSON или XML
JSON (JavaScript Object Notation) – это открытый стандартный файловый формат для обмена данными, который использует удобочитаемый текст для хранения и передачи данных. JSON-файлы сохраняются с расширением .json. JSON требует меньше форматирования и является хорошей альтернативой XML. JSON происходит из JavaScript, но является независимым от языка форматом данных. Создание и разбор JSON поддерживается многими современными языками программирования. application/json – это тип медиа-формат, используемый для JSON.
Aspose.Cells поддерживает сохранение файлов в форматах JSON или XML.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells JSON Export Example</title>
</head>
<body>
<h1>Convert Excel to JSON</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Convert to JSON</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 (!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();
// Instantiate Workbook from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Save workbook as JSON
const outputData = workbook.save(SaveFormat.Json);
const blob = new Blob([outputData], { type: 'application/json' });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'book1.json';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download JSON File';
document.getElementById('result').innerHTML = '<p style="color: green;">Conversion completed successfully! Click the download link to get the JSON file.</p>';
});
</script>
</html>