石家庄网站开发工程师招聘网,网页前端开发框架,优秀的vi设计案例,广州网站开发招聘信息一、相关介绍
POI技术
Apache POI是Apache软件基金会的开放源码函式库#xff0c;POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
poi-ooxml能解析xls#xff0c;xlsx。
poi能解析word、ppt、excel、xml等office软件
导入坐标#xff1a;
depende…一、相关介绍
POI技术
Apache POI是Apache软件基金会的开放源码函式库POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
poi-ooxml能解析xlsxlsx。
poi能解析word、ppt、excel、xml等office软件
导入坐标
dependency groupIdorg.apache.poi/groupId artifactIdpoi-ooxml/artifactId version3.17/version
/dependency 二、使用案例
通过Poi操作Excel十分方便
使用 WorkbookFactory类 的create()方法解析出excel所有数据 将一个Excel抽象为一个Workbook sheets 对象中保存了excel中所有的数据 一个表单页抽象为Sheet表单中的一行抽象为Row一行中的一个单元格可以抽象为Cell。 HSSFWorkbook对应的是97-03格式(.xls)
XSSFWorkbook对应的是07格式的(.xlsx) Workbook的获取——可以通过WorkbookFactory
根据传入excel文件的类型来调用不同的实现类子类
WorkbookFactory——创建Workbook 1、读
//Excel 解析 去读 写入 poi esaypoi1、输入流加载excel文件
2、使用POI解析excel—— Workbook sheets WorkbookFactory.create(fis)———— sheets 对象中保存了excel中所有的数据
3、获取指定sheet ———— Sheet sheet sheets.getSheetAt(0)———— getSheetAt——根据索引索取
4、获取所有row ———— Row row sheet.getRow(3);//获取第四行
5、获取所有cell ————— Cell cell row.getCell(1);//获取第二列//getCell重载的方法【丢失单元格策略】如果cell不是空不做任何事//如果单元格是空的默认返回一个null则new一个Cell()返回 保证不会报空指针Cell cell row.getCell(j, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);6、获取所有cell中的内容———— cell.getStringCellValue()cell.setCellType(CellType.STRING);//强行把cell的类型设置为String//防止报错Cannot get a STRING value from a NUMERIC cell
2、写——回写 修改 回写——基于最大的sheets对象来回写 因为sheet、row、cell可能都有改动 回写可以写到已经有的文件或者不存在的文件 如果是已经存在的文件那么会清空再写进去有风险 如果是不存在的文件那么会新建 如果文件已经打开那么写不进去 public class WriteExcel {public static void main(String[] args) throws Exception {//2、修改excel//2.1创建流FileInputStream fis2 new FileInputStream(src/test/resources/例子.xlsx);//2.2使用POI解析excelWorkbook sheets WorkbookFactory.create(fis2);fis2.close();//2.3 获取指定sheetSheet sheet2 sheets.getSheetAt(0);//2.4 获取指定rowRow row2 sheet2.getRow(3);//2.5 获取指定cellCell cell2 row2.getCell(1);//2.6 修改cell内容cell2.setCellValue(我安撕家);/*其实是把内容都拿到放在sheets里面修改一个再写进去相当于删除掉重新写入*/FileOutputStream fos2 new FileOutputStream(src/test/resources/例子回写.xlsx);sheets.write(fos2);}
}
3、写——创建
public class CreateExcelLearn {
//创建excel
0、在盘下创建一个文件夹
1、定义工作薄,创建HSSFWorkbook对象(excel的文档对象)
2、创建输出流
3、建立新的sheet对象excel的表单Sheet sheet sheets.createSheet(sheet名称);
// Row row sheet.createRow(0);
// Cell cell row.createCell(0);
// cell.setCellValue(具体要填写的内容);
4、将workbook写入流
5、关流public static void main(String[] args) throws Exception {
/*
在盘下创建一个文件夹
*/String directory /Users..;File file new File(directory); // 创建文件夹对象if (!file.exists()) {// 如果不存在就创建file.mkdirs();}//HSSFWorkbook implements Workbook//1、定义工作薄,创建HSSFWorkbook对象(excel的文档对象)Workbook wb new HSSFWorkbook();//2、创建输出流FileOutputStream fileout new FileOutputStream(/Users/..创建.xls);// 3、建立新的sheet对象excel的表单Sheet sheet wb.createSheet(Sheet页1);// 定义sheet页面// 4、在sheet里创建第一行参数为行索引(excel的行)可以是065535之间的任何一Row row sheet.createRow(0);// 创建第一行Cell cell row.createCell(0);// 创建一个单元格第一列。cell.setCellValue(cy的第一行第一列);//设置值//5、设置第一行 第二列为3row.createCell(1).setCellValue(3);wb.createSheet(Sheet页2);// 定义sheet页面// 6、将workbook写入流wb.write(fileout);// 7、关闭输出流fileout.close();}