Apache POI

Apache POI 简介

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

Apache POI(HSSF+ XSSF),支持Excel库的所有基本功能。

HSSFWorkbook 和 XSSFWorkbook

工作簿的高级表示形式。这是大多数用户正在阅读或编写工作簿时构造的第一个对象。它也是用于创建新工作表等的顶层对象。在 org.apache.poi.ss.usermodel 包中。

HSSFWorkbook:用于操作扩展名为.xls的Excel,它与微软的Excel97-2003版本兼容。

XSSFWorkbook:用于操作扩展名为.xlsx的Excel,它与Excel2007版本及更高版本兼容。


具体使用

1. 写操作(创建Excel)

1.1 HSSFWorkbook对象

SSFWorkbook workbook = new HSSFWorkbook();  // 创建工作簿对象

1.2 sheet对象

// workbook对象需要在此之前创建
HSSFSheet sheet = workbook.createSheet();  // 创建sheet对象(sheet使用默认名称)
或者
HSSFSheet sheet = workbook.createSheet("Sheet name");  // 创建sheet对象(使用指定的sheet名称)

1.3 row对象

// sheet对象需要在此之前创建
HSSFRow row = sheet.createRow(N);  // 创建第N行(N为常量)

row.setHeightInPoints((short) 24); // 设置行高

1.4 cell对象

// row对象需要在此之前创建
HSSFCell cell = row.createCell(N);  // 创建第N个单元格(N为常量)

cell.setCellValue("String Value"); // 设置单元格的值

// cellStyle对象需要在此之前创建
cell.setCellStyle(cellStyle); 

1.5 font对象

// workbook对象需要在此之前创建
HSSFFont font = workbook.createFont(); // 创建字体对象

font.setFontName("宋体");  // 设置字体

font.setBold(true); // 设置字体是否加粗

font.setColor(Font.COLOR_RED);  // 设置字体颜色

font.setFontHeightInPoints((short) 14); // 设置字体高度

1.6 cellStyle对象

HSSFCellStyle cellStyle = workbook.createCellStyle(); // 创建单元格样式 —— workbook对象需要在此之前创建

cellStyle.setAlignment(HorizontalAlignment.CENTER); // 设置水平方向上的文本对齐方式

cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 设置竖直方向上的文本对齐方式

cellStyle.setBorderTop(BorderStyle.THIN); // 设置单元格顶部边框使用的边框类型

cellStyle.setBorderBottom(BorderStyle.THIN); // 设置单元格底部边框使用的边框类型

cellStyle.setBorderLeft(BorderStyle.THIN); // 设置单元格左边框使用的边框类型
            
cellStyle.setBorderRight(BorderStyle.THIN); // 设置单元格右边框使用的边框类型
           
cellStyle.setFont(font); // 设置此样式的字体 —— font对象需要在此之前创建
          
cellStyle.setWrapText(false);  // 设置单元格文本是否换行
           
cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); // 设置单元格前景填充颜色 【注意:确保前景色设置在背景色之前。】

cellStyle.setFillBackgroundColor(IndexedColors.BLACK.getIndex()); // 设置单元格背景填充颜色

cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 设置一个充满了前景色的单元格.

1.7 生成Excel文件

// 文件输出路径
private static final String OUT_PATH = "F:\\数据导出\\表格\\学生表";
……

File file = new File(OUT_PATH);
if (file.exists()) {
    System.out.println("文件的输出路径已存在 : " + OUT_PATH);
} else {
    file.mkdirs(); // 如果文件目录不存在,则逐级创建
    System.out.println("文件的输出路径为 : " + OUT_PATH);
}
  String fileName = "A1"; // 文件名称
  String fileSuffix = ".xls"; // 文件名称后缀
  workbook.write(new File(OUT_PATH, fileName + fileSuffix));

// 打开资源管理器到指定文件夹
Runtime.getRuntime().exec("cmd /c start explorer " + ExportExcelTest.OUT_PATH); //ExportExcelTest为类名

 

示例 :将数据库查询结果导出成Excel表格


—— END ——

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值