使用JavaScript通过C++在工作簿之间复制和移动工作表
Contents
[
Hide
]
有时,您可能需要具有相同格式和数据输入的许多工作表。例如,如果您使用季度预算,可能希望创建一个包含具有相同列标题、行标题和公式的工作表的工作簿。有一种方法可以做到这一点:先创建一个工作表,然后将其复制三次。
Aspose.Cells for JavaScript通过C++支持在工作簿内外复制或移动工作表。包括数据、格式、表格、矩阵、图表、图片及其他对象,复制的精度最高。
复制和移动工作表
在工作簿内复制工作表
所有示例的初始步骤都是相同的。
- 在Microsoft Excel中创建两个带有一些数据的工作簿。对于本示例,我们在Microsoft Excel中创建了两个新工作簿,并为工作表输入了一些数据。
- FirstWorkbook.xlsx(3 个工作表)。
- SecondWorkbook.xlsx(1 个工作表)。
- 下载并安装 Aspose.Cells:
- 下载Aspose.Cells for JavaScript通过C++
- 在您的开发计算机上安装它。 所有 Aspose 组件在安装后都是以评估模式运行。 评估模式没有时间限制,只会在生成的文档中添加水印。
- 创建一个项目:
- 启动你的开发环境。
- 创建新的控制台应用程序。
- 添加引用:
- 向项目添加对 Aspose.Cells 的引用。 例如,添加对 …\Program Files\Aspose\Aspose.Cells\Bin\NodeJs\Aspose.Cells.dll 的引用
- 在工作簿内复制工作表 第一个示例将 FirstWorkbook.xlsx 内的第一个工作表(Copy)复制。
执行代码后,名为 Copy 的工作表将在 FirstWorkbook.xlsx 中复制并命名为 Last Sheet。
<!DOCTYPE html>
<html>
<head>
<title>Copy Worksheet Example</title>
</head>
<body>
<h1>Copy Worksheet 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, 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');
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();
// Opening the Excel file through the file stream
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Copy the first sheet of the first book within the workbook
workbook.worksheets.get(2).copy(workbook.worksheets.get("Copy"));
// Saving the modified Excel file
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'FirstWorkbookCopied_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
resultDiv.innerHTML = '<p style="color: green;">Worksheet copied successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
工作簿内移动工作表
以下代码显示了如何将工作簿内的工作表从一个位置移动到另一个位置。执行代码后,Move 工作表从 FirstWorkbook.xlsx 的索引 1 移动到索引 2。
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Move Worksheet 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, 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();
// Instantiating a Workbook object from the uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Move the first sheet to index 1
const worksheets = workbook.worksheets;
const worksheet = worksheets.get(0);
worksheet.moveTo(1);
// Saving the modified Excel file and offering it for download
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'FirstWorkbookMoved_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Worksheet moved successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
在工作簿之间复制工作表
执行代码会将名为 Copy 的工作表复制到 SecondWorkbook.xlsx 中,并命名为 Sheet2。
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Copy Worksheets Between Workbooks</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 () => {
// Create two workbooks
const excelWorkbook3 = new Workbook();
const excelWorkbook4 = new Workbook();
// Create source worksheet
excelWorkbook3.worksheets.add("Copy");
// Add new worksheet into second Workbook
excelWorkbook4.worksheets.add();
// Copy the first sheet of the first book into second book.
excelWorkbook4.worksheets.get(1).copy(excelWorkbook3.worksheets.get("Copy"));
// Save the file.
const outputData = excelWorkbook4.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'CopyWorksheetsBetweenWorkbooks_out.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Modified Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Worksheets copied successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
在工作簿之间移动工作表
执行代码后,工作表名为 Move 从 FirstWorkbook.xlsx 移动到 SecondWorkbook.xlsx,并命名为 Sheet3。
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Move Worksheets Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink1" style="display: none; margin-right: 10px;">Download First Workbook</a>
<a id="downloadLink2" style="display: none;">Download Second Workbook</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 () => {
// Create new workbooks instead of opening existing files
const excelWorkbook5 = new Workbook();
const excelWorkbook6 = new Workbook();
// Add New Worksheet
excelWorkbook6.worksheets.add();
// Copy the sheet from first book into second book.
excelWorkbook6.worksheets.get(0).copy(excelWorkbook5.worksheets.get(0));
// Remove the copied worksheet from first workbook
excelWorkbook5.worksheets.removeAt(0);
// Save the first workbook
const outputData1 = excelWorkbook5.save(SaveFormat.Xlsx);
const blob1 = new Blob([outputData1]);
const downloadLink1 = document.getElementById('downloadLink1');
downloadLink1.href = URL.createObjectURL(blob1);
downloadLink1.download = 'FirstWorkbookWithMove_out.xlsx';
downloadLink1.style.display = 'inline';
downloadLink1.textContent = 'Download FirstWorkbookWithMove_out.xlsx';
// Save the second workbook
const outputData2 = excelWorkbook6.save(SaveFormat.Xlsx);
const blob2 = new Blob([outputData2]);
const downloadLink2 = document.getElementById('downloadLink2');
downloadLink2.href = URL.createObjectURL(blob2);
downloadLink2.download = 'SecondWorkbookWithMove_out.xlsx';
downloadLink2.style.display = 'inline';
downloadLink2.textContent = 'Download SecondWorkbookWithMove_out.xlsx';
document.getElementById('result').innerHTML = '<p style="color: green;">Workbooks processed successfully. Click the download links to retrieve the files.</p>';
});
</script>
</html>