本文介绍如何使用Spire.XLS for Java将工作表按照数据拆分成多个工作表。
原文档截图如下:
import com.spire.xls.CellRange;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class SplitWorksheetIntoMultiSheets {
public static void main(String[] args) {
//创建Workbook对象,加载Excel文档
Workbook bookOriginal = new Workbook();
bookOriginal.loadFromFile("C:\\Users\\Administrator\\Desktop\\Employees.xlsx");
//获取第一个工作表
Worksheet sheet = bookOriginal.getWorksheets().get(0);
//获取标题行
CellRange headRow = sheet.getCellRange(1, 1, 1, 5);
//获取两个数据区域
CellRange range1 = sheet.getCellRange(2, 1, 6, 5);
CellRange range2 = sheet.getCellRange(7, 1, 11, 5);
//添加一个工作表,命名为“销售部”
Worksheet sheet2 = bookOriginal.getWorksheets().add("销售部");
//将标题行和数据区域1复制到“销售部”工作表
sheet.copy(headRow, sheet2, 1, 1, true, false);
sheet.copy(range1, sheet2, 2, 1, true, false);
//添加一个工作表,命名为“技术部”
Worksheet sheet3 = bookOriginal.getWorksheets().add("技术部");
//将标题行和数据区域2复制到“技术部”工作表
sheet.copy(headRow, sheet3, 1, 1, true, false);
sheet.copy(range2, sheet3, 2, 1, true, false);
//将第一个工作表中的列宽应用到新加的两个做工作表
for (int i = 0; i < sheet.getLastColumn(); i++) {
sheet2.setColumnWidth(i + 1, sheet.getColumnWidth(i + 1));
sheet3.setColumnWidth(i + 1, sheet.getColumnWidth(i + 1));
}
//保存文档
bookOriginal.saveToFile("Splited.xlsx", ExcelVersion.Version2016);
}
}
结果文档: