复制和移动工作表
有时,您确实需要一些具有共同格式和数据的工作表。例如,如果您在季度预算上工作,您可能希望创建一个包含具有相同列标题、行标题和公式的工作表的工作簿。有一种方法可以做到这一点:先创建一个工作表,然后进行复制。
Aspose.Cells 支持在工作簿内部或工作簿之间复制和移动工作表。工作表完整地包括数据、格式、表、矩阵、图表、图像和其他对象,因此精度很高。
使用Microsoft Excel移动或复制工作表
以下是在工作簿内或工作簿之间复制和移动工作表所涉及的步骤。
- 要将工作表移动或复制到另一个工作簿中,请打开将要接收工作表的工作簿。
- 切换到包含您想要移动或复制的工作表的工作簿,然后选择这些工作表。
- 在“编辑”菜单上,单击“移动或复制工作表”
- 在“接收工作簿”框中,单击要接收工作表的工作簿。
- 要将所选工作表移动或复制到新工作簿中,请单击新工作簿。
- 在“工作表之前”框中,单击要在其之前插入移动或复制的工作表。
- 要复制工作表而不是移动它们,请选择“创建副本”复选框。
在工作簿内复制工作表
Aspose.Cells提供了一个重载方法,WorksheetCollection.addCopy(),用于将工作表添加到集合并从现有工作表复制数据。该方法的一个版本将源工作表的索引作为参数。另一个版本将源工作表的名称作为参数。
以下示例显示了如何在工作簿内复制现有工作表。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
String dataDir = Utils.getSharedDataDir(AddingPageBreaks.class) + "worksheets/"; | |
// Create a new Workbook by excel file path | |
Workbook wb = new Workbook(dataDir + "book1.xls"); | |
// Create a Worksheets object with reference to the sheets of the Workbook. | |
WorksheetCollection sheets = wb.getWorksheets(); | |
// Copy data to a new sheet from an existing sheet within the Workbook. | |
sheets.addCopy("Sheet1"); | |
// Save the excel file. | |
wb.save(dataDir + "CopyWithinWorkbook_out.xls"); |
在工作簿之间复制工作表
Aspose.Cells提供了Worksheet.copy()方法,用于将数据和格式从源工作表复制到同一工作簿或不同工作簿中的另一个工作表。
以下示例显示了如何将一个工作表从一个工作簿复制到另一个工作簿。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
String dataDir = Utils.getSharedDataDir(AddingPageBreaks.class) + "worksheets/"; | |
// Create a Workbook. | |
Workbook excelWorkbook0 = new Workbook(dataDir + "book1.xls"); | |
// Create another Workbook. | |
Workbook excelWorkbook1 = new Workbook(); | |
// Copy the first sheet of the first book into second book. | |
excelWorkbook1.getWorksheets().get(0).copy(excelWorkbook0.getWorksheets().get(0)); | |
// Save the file. | |
excelWorkbook1.save(dataDir + "CWBetweenWorkbooks_out.xls", FileFormatType.EXCEL_97_TO_2003); |
以下示例显示了如何将一个工作表从一个工作簿复制到另一个。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
String dataDir = Utils.getSharedDataDir(AddingPageBreaks.class) + "worksheets/"; | |
// Create a new Workbook. | |
Workbook excelWorkbook0 = new Workbook(); | |
// Get the first worksheet in the book. | |
Worksheet ws0 = excelWorkbook0.getWorksheets().get(0); | |
// Put some data into header rows (A1:A4) | |
for (int i = 0; i < 5; i++) { | |
ws0.getCells().get(i, 0).setValue("Header Row " + i); | |
} | |
// Put some detail data (A5:A999) | |
for (int i = 5; i < 1000; i++) { | |
ws0.getCells().get(i, 0).setValue("Detail Row " + i); | |
} | |
// Define a pagesetup object based on the first worksheet. | |
PageSetup pagesetup = ws0.getPageSetup(); | |
// The first five rows are repeated in each page... It can be seen in print preview. | |
pagesetup.setPrintTitleRows("$1:$5"); | |
// Create another Workbook. | |
Workbook excelWorkbook1 = new Workbook(); | |
// Get the first worksheet in the book. | |
Worksheet ws1 = excelWorkbook1.getWorksheets().get(0); | |
// Name the worksheet. | |
ws1.setName("Sheet1"); | |
// Copy data from the first worksheet of the first workbook into the first worksheet of the second workbook. | |
ws1.copy(ws0); | |
// Save the excel file. | |
excelWorkbook1.save(dataDir + "CopyWorksheetFromWorkbookToOther_out.xls", FileFormatType.EXCEL_97_TO_2003); |
在工作簿内部移动工作表
Aspose.Cells提供了Worksheet.moveTo()方法,用于将工作表移动到同一电子表格中的另一个位置。
以下示例显示了如何将工作表移动到工作簿内的另一个位置。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
String dataDir = Utils.getSharedDataDir(MoveWorksheet.class) + "worksheets/"; | |
// Create a new Workbook. | |
Workbook wb = new Workbook(dataDir + "BkFinance.xls"); | |
// Get the first worksheet in the book. | |
Worksheet sheet = wb.getWorksheets().get(0); | |
// Move the first sheet to the third position in the workbook. | |
sheet.moveTo(2); | |
// Save the Excel file. | |
wb.save(dataDir + "MoveWorksheet_out.xls"); |