Java生成Excel表格
在学习生成Excel之前,我们首先了解一下什么是POI;
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
HSSF - 提供读写Microsoft Excel格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
HWPF - 提供读写Microsoft Word格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读写Microsoft Visio格式档案的功能。
下面是一个demo,也有比较详细的注解:
package test; import java.io.File; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; //导出Excel表 public class PoiTest { public static String outputFile = "D:\\test.xls"; public static void main(String[] args) { PoiTest poiTest = new PoiTest(); poiTest.createbook(outputFile); } public HSSFWorkbook createbook(String fileName) { // 创建Excel工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); // 在Excel工作簿中创建工作表 HSSFSheet sheet = workbook.createSheet("测试");// 带有表名的 // HSSFSheet sheet = workbook.createSheet(); HSSFCellStyle style = workbook.createCellStyle(); HSSFFont font = workbook.createFont(); font.setFontHeightInPoints((short) 12);// 设置字体大小 font.setFontName("微软雅黑"); style.setFont(font); // 在索引0的位置创建行(最顶端的行) HSSFRow headrow = sheet.createRow((short) 0); // 在索引0的位置创建单元格(左上端) for (int j = 0; j < 5; j++) { HSSFCell cell = headrow.createCell(j); // 定义单元格为字符串类型 cell.setCellType(HSSFCell.CELL_TYPE_STRING); // 在单元格中输入一些内容 cell.setCellValue("姓名 " + j); cell.setCellStyle(style); } for (int k = 1; k < 10; k++) { HSSFRow row = sheet.createRow((short) k); for (int n = 0; n < 5; n++) { HSSFCell cell = row.createCell(n); // 定义单元格为字符串类型 cell.setCellType(HSSFCell.CELL_TYPE_STRING); // 在单元格中输入一些内容 cell.setCellValue("张三" + n); cell.setCellStyle(style); } } try { // 新建一个输出文件流 FileOutputStream fOut = new FileOutputStream(outputFile); // 把相应的Excel工作簿存盘 workbook.write(fOut); fOut.flush(); // 操作结束,关闭文件 fOut.close(); System.out.println("文件生成"); } catch (Exception e) { } return workbook; } }