在我们学习java的过程中可以发现,java是门内容极其丰富庞大的编程语言,很难完全地掌握它,需要使用者不断地汲取新知识充实自身。今天就来为大家介绍一下java中POI的含义以及Excel基本操作展示。
首先来了解一下POI。
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。另外,HSSF是Horrible SpreadSheet Format的缩写,通过HSSF,我们可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。
接下来再来看一下,Excel基本操作,主要包括下面几个步骤。
1.得到Excel常用对象,代码如下所示:
//获得Excel对象 @Test public void testExcel1() { try { //获取系统文档 POIFSFileSystem fspoi = new POIFSFileSystem(new FileInputStream("/Users/wangjun/temp/demo1.xls")); //创建工作薄对象 HSSFWorkbook workbook = new HSSFWorkbook(fspoi); //创建工作表对象 HSSFSheet sheet = workbook.getSheet("sheet1"); //得到Excel表格 HSSFRow row = sheet.getRow(1); //得到Excel工作表指定行的单元格 HSSFCell cell = row.getCell(1); System.out.println(cell); } catch (IOException e) { e.printStackTrace(); } }
2.创建Excel文档,代码如下所示:
//创建Excel对象 @Test public void testExcel2() throws IOException { //创建工作薄对象 HSSFWorkbook workbook = new HSSFWorkbook(); //这里也可以设置sheet的Name //创建工作表对象 HSSFSheet sheet = workbook.createSheet(); //创建工作表的行 HSSFRow row = sheet.createRow(0); //设置第一行,从零开始 row.createCell(2) .setCellValue("aaaaaaaaaaaa"); //第一行第三列为aaaaaaaaaaaa row.createCell(0) .setCellValue(new Date()); //第一行第一列为日期 workbook.setSheetName(0, "sheet的Name"); //设置sheet的Name //文档输出 FileOutputStream out = new FileOutputStream("/Users/wangjun/temp/" + new SimpleDateFormat("yyyyMMddHHmmss") .format(new Date()) .toString() + ".xls"); workbook.write(out); out.close(); }
3.创建Excel文档,添加摘要信息,代码如下所示:
//创建文档摘要信息 @Test public void testExcel3() throws IOException { //创建HSSFWorkbook工作薄对象 HSSFWorkbook workbook = new HSSFWorkbook(); //创建HSSFSheet对象 HSSFSheet sheet = workbook.createSheet("sheet1"); //创建行的单元格,从0开始 HSSFRow row = sheet.createRow(0); //创建单元格,从0开始 HSSFCell cell = row.createCell(0); cell.setCellValue("a"); //一下为简写 row.createCell(1) .setCellValue("aa"); row.createCell(2) .setCellValue("aaa"); row.createCell(3) .setCellValue("aaaa"); //创建文档信息 workbook.createInformationProperties(); //获取DocumentSummaryInformation对象 DocumentSummaryInformation documentSummaryInformation = workbook.getDocumentSummaryInformation(); documentSummaryInformation.setCategory("类别:Excel文件"); //类别 documentSummaryInformation.setManager("管理者:王军"); //管理者 documentSummaryInformation.setCompany("公司:Action"); //公司 //文档输出 FileOutputStream out = new FileOutputStream("/Users/wangjun/temp/" + new SimpleDateFormat("yyyyMMddHHmmss") .format(new Date()) .toString() + ".xls"); workbook.write(out); out.close(); }
4.创建批注,代码如下所示:
//创建批注 @Test public void testExcel4() throws IOException { //创建Excel工作薄对象 HSSFWorkbook workbook = new HSSFWorkbook(); //创建Excel工作表对象 HSSFSheet sheet = workbook.createSheet("wj"); HSSFPatriarch patr = sheet.createDrawingPatriarch(); //创建批注位置(row1-row3:直接理解为高度,col1-col2:直接理解为宽度) HSSFClientAnchor anchor = patr.createAnchor(0, 0, 0, 0, 5, 1, 8, 3); //创建批注 HSSFComment comment = patr.createCellComment(anchor); //设置批注内容 comment.setString(new HSSFRichTextString("这是一个批注段落!")); //设置批注作者 comment.setAuthor("wangjun"); //设置批注默认显示 comment.setVisible(true); HSSFCell cell = sheet.createRow(2) .createCell(1); cell.setCellValue("测试"); //把批注赋值给单元格 cell.setCellComment(comment); //文档输出 FileOutputStream out = new FileOutputStream("/Users/wangjun/temp/" + new SimpleDateFormat("yyyyMMddHHmmss") .format(new Date()) .toString() + ".xls"); workbook.write(out); out.close(); }
另外补充一些创建批注位置HSSFPatriarch.createAnchor(dx1, dy1, dx2, dy2, col1, row1, col2, row2)方法的参数说明:
⑴dx1第1个单元格中x轴的偏移量;
⑵dy1第1个单元格中y轴的偏移量;
⑶dx2第2个单元格中x轴的偏移量;
⑷dy2第2个单元格中y轴的偏移量;
⑸col1第1个单元格的列号;
⑹row1第1个单元格的行号;
⑺col2第2个单元格的列号;
⑻row2第2个单元格的行号;
5.创建页眉和页脚,代码如下所示:
//创建页眉页脚 @Test public void testExcel5() throws IOException { //创建Excel工作薄对象 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet) HSSFHeader header = sheet.getHeader(); //得到页眉 header.setLeft("页眉左边"); header.setRight("页眉右边"); header.setCenter("页眉中间"); HSSFFooter footer = sheet.getFooter(); //得到页脚 footer.setLeft("页脚左边"); footer.setRight("页脚右边"); footer.setCenter("页脚中间"); //文档输出 FileOutputStream out = new FileOutputStream("/Users/wangjun/temp/" + new SimpleDateFormat("yyyyMMddHHmmss") .format(new Date()) .toString() + ".xls"); workbook.write(out); out.close(); }
以上就是关于在java中POI的含义以及Excel基本操作展示。想要了解更多java基础以及常见问题,敬请关注奇Q工具网。
推荐阅读: