- 浏览: 15094 次
- 性别:
- 来自: 大连
文章分类
最新评论
一. Apache POI 简介( http://poi.apache.org/)
使用Java程序读写Microsoft Office,提供了下面这几种类型:
HSSF-提供读写Microsoft Excel XLS格式档案的功能。
XSSF-提供读写Microsoft Excel OOXML XLSX格式档案的功能。
HWPF-提供读写Microsoft Word DOC格式档案的功能。
HSLF- 供读写Microsoft PowerPoint格式档案的功能。
HDGF-提供读Microsoft Visio格式档案的功能。
HPBF-提供读Microsoft Publisher格式档案的功能。
二、POI操作Excel
1. 官方快速帮助:http://poi.apache.org/spreadsheet/quick-guide.html
2. 导入包:poi-3.6.jar
Java代码 package excel.poi; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.Iterator; import org.apache.poi.POITextExtractor; import org.apache.poi.extractor.ExtractorFactory; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataFormat; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.exceptions.OpenXML4JException; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFCreationHelper; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.xmlbeans.XmlException; public class ReadExcel { /** * 读取office 2003 xls * @param filePath */ @SuppressWarnings({ "unchecked", "deprecation" }) public void loadXls(String filePath){ try { InputStream input = new FileInputStream("D:\\资料\\文档一期\\xls\\082010 凤鸣轩书单.xls"); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); // Iterate over each row in the sheet Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); System.out.println("Row #" + row.getRowNum()); // Iterate over each cell in the row and print out the cell"s // content Iterator cells = row.cellIterator(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); System.out.println("Cell #" + cell.getCellNum()); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: System.out.println(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_STRING: System.out.println(cell.getStringCellValue()); break; case HSSFCell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_FORMULA: System.out.println(cell.getCellFormula()); break; default: System.out.println("unsuported sell type"); break; } } } } catch (IOException ex) { ex.printStackTrace(); } } /** * 读取xlsx文本 * @param filePath */ public void loadXlsxText(String filePath){ File inputFile = new File("D:\\test.xlsx"); try { POITextExtractor extractor = ExtractorFactory.createExtractor(inputFile); System.out.println(extractor.getText()); } catch (InvalidFormatException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (OpenXML4JException e) { e.printStackTrace(); } catch (XmlException e) { e.printStackTrace(); } } /** * 读取office 2007 xlsx * @param filePath */ public void loadXlsx(String filePath){ // 构造 XSSFWorkbook 对象,strPath 传入文件路径 XSSFWorkbook xwb = null; try { xwb = new XSSFWorkbook("D:\\text.xlsx"); } catch (IOException e) { System.out.println("读取文件出错"); e.printStackTrace(); } // 读取第一章表格内容 XSSFSheet sheet = xwb.getSheetAt(0); // 定义 row、cell XSSFRow row; String cell; // 循环输出表格中的内容 for (int i = sheet.getFirstRowNum()+1; i < sheet.getPhysicalNumberOfRows(); i++) { row = sheet.getRow(i); for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) { // 通过 row.getCell(j).toString() 获取单元格内容, if (j==1&&i!=0) { cell = row.getCell(j).getDateCellValue().toLocaleString(); }else { cell = row.getCell(j).toString(); } /* //获取字体和背景颜色 String rgbShort=row.getCell(j).getCellStyle().getFont().getCTFont().getColorArray()[0].xmlText(); rgbShort=ReadExcel.substringBetween(rgbShort, "rgb=\"","\"/>"); String rgbShort=row.getCell(j).getCellStyle().getFillBackgroundXSSFColor().getCTColor().toString(); Color color=new Color(Color.BLUE.getRGB()); System.out.print(cell +",index:"+rgbShort+" red:"+color.getRed()+" blue:"+color.getBlue()+"\t"); */ System.out.print(cell +"\t"); } System.out.println(""); } } /** * HSSF 写入excel xls 格式 * @param filePath * @throws IOException */ public void writeXls(String filePath)throws IOException{ //工作簿 23. HSSFWorkbook hssfworkbook=new HSSFWorkbook(); //创建sheet页 25. HSSFSheet hssfsheet=hssfworkbook.createSheet(); //sheet名称 hssfworkbook.setSheetName(0,"研发部门"); //取得第一行 29. HSSFRow hssfrow=hssfsheet.createRow(0); //创建第一个单元格并处理乱码 31. HSSFCell hssfcell_0=hssfrow.createCell((short)0); //hssfcell_0.setEncoding(HSSFWorkbook.ENCODING_UTF_16); //对第一个单元格赋值 34. hssfcell_0.setCellValue("研发工程师1"); //日期单元格格式处理 HSSFCellStyle hssfcellstyle=hssfworkbook.createCellStyle(); //m/d/yyh:mm 39. hssfcellstyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy")); //创建第二个单元格 41. HSSFCell hssfcell_1=hssfrow.createCell((short)1); hssfcell_1.setCellValue(new Date()); hssfcell_1.setCellStyle(hssfcellstyle); hssfrow.createCell((short)2).setCellValue(true); hssfrow.createCell((short)3).setCellValue(122.00); //输出 49. FileOutputStream fileoutputstream=new FileOutputStream("d:\\exceltext.xls"); hssfworkbook.write(fileoutputstream); fileoutputstream.close(); } @SuppressWarnings("static-access") public void writeXlsx(String filePath)throws IOException{ //工作簿 XSSFWorkbook hssfworkbook=new XSSFWorkbook(); //获得CreationHelper对象,这个应该是一个帮助类 XSSFCreationHelper helper=hssfworkbook.getCreationHelper(); //创建sheet页 XSSFSheet hssfsheet=hssfworkbook.createSheet(); //设置sheet名称 hssfworkbook.setSheetName(0,"我的测试sheet"); //取得第一行 XSSFRow firstRow=hssfsheet.createRow(0); //创建第一个单元格 XSSFCell hssfcell_0=firstRow.createCell(0); //hssfcell_0.setEncoding(HSSFWorkbook.ENCODING_UTF_16);并处理乱码 //对第一个单元格赋值 hssfcell_0.setCellValue("名称"); //创建第二个单元格 XSSFCell hssfcell_1=firstRow.createCell(1); hssfcell_1.setCellValue("创建日期"); //日期单元格格式处理 XSSFCellStyle dateCellStyle=hssfworkbook.createCellStyle(); //m/d/yyh:mm 设置日期格式 dateCellStyle.setDataFormat(helper.createDataFormat().getFormat("yyyy-MM-dd hh:mm:ss")); dateCellStyle=ReadExcel.setFillBackgroundColors(dateCellStyle, IndexedColors.BLACK.getIndex(), IndexedColors.YELLOW.getIndex(), dateCellStyle.SOLID_FOREGROUND); //设置其他标题 firstRow.createCell(2).setCellValue("用户"); firstRow.createCell(3).setCellValue("备注"); //写入所有内容行 for (int rowInt = 1; rowInt < 10; rowInt++) { XSSFRow row =hssfsheet.createRow(rowInt); XSSFCell cell_0=row.createCell(0); cell_0.setCellValue("刘伯恩"); XSSFCell cell_1=row.createCell(1); cell_1.setCellValue(new Date()); cell_1.setCellStyle(dateCellStyle); XSSFCell cell_2=row.createCell(2); cell_2.setCellValue("超级会员"); XSSFCell cell_3=row.createCell(3); cell_3.setCellValue("这里是备注信息"); } //输出 49. FileOutputStream fileoutputstream=new FileOutputStream("d:\\exceltext.xlsx"); hssfworkbook.write(fileoutputstream); fileoutputstream.close(); } /** * 前景和背景填充的着色 * @param cellStyle * @param bg IndexedColors.ORANGE.getIndex(); * @param fg IndexedColors.ORANGE.getIndex(); * @param fp CellStyle.SOLID_FOREGROUND * @return */ public static XSSFCellStyle setFillBackgroundColors(XSSFCellStyle cellStyle,short bg,short fg,short fp){ cellStyle.setFillBackgroundColor(bg); cellStyle.setFillForegroundColor(fg); cellStyle.setFillPattern(fp); return cellStyle; } public static void main(String[] args) { ReadExcel readExcel =new ReadExcel(); /* try { readExcel.writeXlsx(""); } catch (IOException e) { e.printStackTrace(); }*/ readExcel.loadXls(""); } }
发表评论
-
JDBC调用存储过程
2012-12-24 09:14 668Connection conn = cu.getConn( ... -
dom4j存取xml文件
2012-12-20 09:12 721import java.io.File; import ... -
java读、写文件
2012-12-20 09:13 671读文件 创建c盘目录下名为temp的文件的具体类 newF ... -
java中的事务处理
2012-12-20 09:13 675什么是事务 事务用于保 ... -
用JDBC的方式连接Oracle
2012-12-19 10:51 7741. package com.sp; 2. 3 ... -
Oracle中Date型转换成Java对应的long型毫秒数
2012-12-19 10:43 2159在Java开发中,很多时候我们为了方便会直接使用long型来保 ...
相关推荐
Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 ...在本文中,我们已经详细介绍了如何使用 Java POI 实现 Excel 导入导出功能,包括读取和写入 Excel 文件。
java读写Excel,POI.JAR,Word内容读取
java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...
这个简单的例子展示了如何读取Excel文件的基本操作,但实际应用中可能需要处理更复杂的情况,比如单元格的格式、公式、超链接等。此外,jxl库只支持Excel的旧版本(.xls),对于新的.xlsx格式,你可能需要使用Apache...
本教程将重点讲解如何使用Apache POI库来读取Excel数据,并基于这些数据批量生成Word文档。Apache POI是一个开源项目,它允许Java开发者处理Microsoft Office格式的文件,如Excel(.xlsx或.xls)和Word(.docx)。 ...
总的来说,Apache POI 提供了强大的功能,使得 Java 开发者能够轻松地读取、写入和操作 Excel 文件,从而在数据处理方面提高效率。通过熟练掌握 Apache POI,你可以实现各种复杂的 Excel 处理需求。
在Java开发中,POI库被广泛用于生成、修改和读取Excel文档。本篇将深入探讨如何利用Apache POI来操作Excel模板,以及如何读取数据并将其填充到新生成的文件中,最终提供下载。 首先,你需要在项目中引入Apache POI...
在Java中,它允许开发者创建、修改和读取Excel工作簿、工作表以及单元格的数据。POI库不仅支持基本的文本和数字操作,还支持更高级的功能,如公式计算、样式设置和图表创建。 2. **创建Excel图表** 要生成Excel图表...
Apache POI是一个开源项目,提供了丰富的API,使得Java开发者能够轻松地与MS Office格式交互,包括XLS(Excel 97-2003)和XLSX(Excel 2007及以后的版本)。 标题中的"java通过poi操作excel jar包"指的是使用Apache...
在Java中,POI库提供了读取和写入Excel文件的强大功能,包括对2003(.xls)和2007及以上版本(.xlsx)的支持。下面我们将详细讲解如何使用POI进行Excel文件的读取和创建。 1. **安装POI库** 要使用POI,首先需要将...
为了读取Excel文件,我们需要引入Apache POI的依赖库。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.poi <artifactId>poi-ooxml <version>4.1.2 ``` 或者,如果你的项目不...
以下将详细介绍如何使用Java来读取Excel文件,同时兼容2003和2007版。 1. Apache POI 库 Apache POI 是一个开源项目,它为Microsoft Office格式提供了一个强大的API。对于Excel文件,POI提供了HSSF(Horrible ...
Java 使用Apache POI库操作Excel 2007文件详解 在Java开发中,处理Excel文件是一项常见的任务,特别是对于数据分析、数据导入导出或报表生成等场景。Apache POI是一个流行的开源库,它允许开发者读写Microsoft ...
### Java读取Excel POI方法详解 #### 一、POI简介及背景 Apache POI 是一个用于处理 Microsoft Office 格式文件的开源库,它提供了读取、写入和修改这些文件的功能。POI 项目中最常用的部分是 HSSF 和 XSSF,分别...
在这个"利用POI解析excel并存入数据库demo"中,我们将关注如何使用 POI 库来读取 Excel 文件,并将数据有效地存入 MySQL 数据库。 首先,要开始使用 POI,你需要在你的项目中引入相应的依赖。如果你使用的是 Maven...
Java中的Apache POI库是一个强大的工具,用于读取和写入Microsoft Office格式的文件,特别是Excel的XLS和XLSX格式。在这个5.2.1版本中,POI提供了对Excel电子表格的强大支持,包括读取数据、修改内容、创建新工作簿...
Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...
Apache POI是一个强大的Java库,专门用于处理...通过lib.rar和Poi02.rar中的示例代码,你可以更深入地了解和学习POI操作Excel的具体实现。在实践中,结合这些资源,你将能够熟练地在Java Web项目中集成Excel处理功能。
要实现"利用POI读取excel写入到word",我们需要以下步骤: 1. **准备环境**:首先,确保你的项目已经引入了Apache POI的依赖。在给定的压缩包中,"poi - 副本"可能是包含POI库的JAR文件,你需要将其添加到你的项目...