当前位置: 首页 > 图灵资讯 > 技术篇> HSSFWorkbook 导出Excel

HSSFWorkbook 导出Excel

来源:图灵教育
时间:2023-06-13 09:23:32

HSFWorkbookApache POI提供的Java类库可用于生成Excel 97-2003格式的文件(.xls)。使用HSSFWorkbook导出Excel需要以下步骤:

  1. 创建工作簿对象

HSSFWorkbook workbook = new HSSFWorkbook();

  1. 创建工作表对象

HSSFSheet sheet = workbook.createSheet(Sheet1);

  1. 创建表头线,设置单元格式风格

HSSFRow headerRow = sheet.createRow(0);HSSFCellStyle headerStyle = workbook.createCellStyle();headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);headerStyle.setFillForegroundColor(IndexedColors.BLUE.index);headerStyle.setBorderBottom(BorderStyle.THIN);headerStyle.setBorderLeft(BorderStyle.THIN);headerStyle.setBorderRight(BorderStyle.THIN);headerStyle.setBorderTop(BorderStyle.THIN);// 创建表头单元格,设置单元格式HSSFCell headercell1 = headerRow.createCell(0);headercell1.setCellValue(“姓名”);headercell1.setCellStyle(headerStyle);HSSFCell headercell2 = headerRow.createCell(1);headercell2.setCellValue(年龄);headercell2.setCellStyle(headerStyle);HSSFCell headercel3 = headerRow.createCell(2);headercel3.setCellValue(性别);headercel3.setCellStyle(headerStyle);

  1. 添加数据行并设置单元格式样式

List<User> userList = getUserList();for (int i = 0; i < userList.size(); i++) {    HSSFRow dataRow = sheet.createRow(i + 1);    User user = userList.get(i);    HSSFCell datacel1 = dataRow.createCell(0);    datacel1.setCellValue(user.getName());    HSSFCell datacel2 = dataRow.createCell(1);    datacel2.setCellValue(user.getAge());    HSSFCell datacell3 = dataRow.createCell(2);    datacell3.setCellValue(user.getGender());}

  1. 设置列宽

sheet.setColumnWidth(0, 20 * 256); // 设置第一列宽度sheetet.setColumnWidth(1, 10 * 256); // 设置第二列宽度sheetet.setColumnWidth(2, 10 * 256); // 设置第三列宽度

  1. 写入文件

FileOutputStream out = new FileOutputStream("test.xls");workbook.write(out);out.close();

完整的示例代码:

public static void exportExcel() throws IOException {    // 创建工作簿对象    HSSFWorkbook workbook = new HSSFWorkbook();    // 创建工作表对象    HSSFSheet sheet = workbook.createSheet(Sheet1);    // 创造表头行,并设置单元格式样式    HSSFRow headerRow = sheet.createRow(0);    HSSFCellStyle headerStyle = workbook.createCellStyle();    headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);    headerStyle.setFillForegroundColor(IndexedColors.BLUE.index);    headerStyle.setBorderBottom(BorderStyle.THIN);    headerStyle.setBorderLeft(BorderStyle.THIN);    headerStyle.setBorderRight(BorderStyle.THIN);    headerStyle.setBorderTop(BorderStyle.THIN);    // 创建表头单元格,并设置单元格式样式    HSSFCell headercell1 = headerRow.createCell(0);    headercell1.setCellValue(“姓名”);    headercell1.setCellStyle(headerStyle);    HSSFCell headercell2 = headerRow.createCell(1);    headercell2.setCellValue(年龄);    headercell2.setCellStyle(headerStyle);    HSSFCell headercel3 = headerRow.createCell(2);    headercel3.setCellValue(性别);    headercel3.setCellStyle(headerStyle);    // 添加数据行,并设置单元格式样式    List<User> userList = getUserList();    for (int i = 0; i < userList.size(); i++) {        HSSFRow dataRow = sheet.createRow(i + 1);        User user = userList.get(i);        HSSFCell datacel1 = dataRow.createCell(0);        datacel1.setCellValue(user.getName());        HSSFCell datacel2 = dataRow.createCell(1);        datacel2.setCellValue(user.getAge());        HSSFCell datacell3 = dataRow.createCell(2);        datacell3.setCellValue(user.getGender());    }    // 设置列宽    sheet.setColumnWidth(0, 20 * 256); // 设置第一列的宽度    sheet.setColumnWidth(1, 10 * 256); // 设置第二列宽度    sheet.setColumnWidth(2, 10 * 256); // 设置第三列宽度    // 写入文件    FileOutputStream out = new FileOutputStream("test.xls");    workbook.write(out);    out.close();}private static List<User> getUserList() {    List<User> userList = new ArrayList<>();    userList.add(new User(张三), 25, "男"));    userList.add(new User(李四), 30, "女"));    userList.add(new User(王五”, 28, "男"));    return userList;}private static class User {    private String name;    private int age;    private String gender;    public User(String name, int age, String gender) {        this.name = name;        this.age = age;        this.gender = gender;    }    public String getName() {        return name;    }    public int getAge() {        return age;    }    public String getGender() {        return gender;    }}

例如,我们首先创建了一个名为workbok的HSSFworkbook对象来表示整个工作簿。然后我们创建了一个名为sheet1的工作表对象,并将其添加到工作簿中。

接下来,我们创建了一行表头,并设置了单元格式。我们将单元格式设置为填充蓝色,并将边框设置为细线。然后,我们创建了三个表单元格,并将其添加到表单行中,同时设置单元格式样式。

然后我们通过获取网站()获取数据行。循环列表并创建银行,并在银行中添加数据单元格。最后,我们设置了列宽,并将工作簿写入名为test.在xls文件中。

以上是基本的 HSSFWorkbook 导出 Excel 可根据需要进行扩展和定制。