利用poi操作excel 备忘如下
写操作:
FileOutputStream fos = new FileOutputStream("d:/stock.xls");
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
wb.setSheetName(0, "stock");
HSSFCell cell;
int i = 0;
HSSFCellStyle numberCellStyle = wb.createCellStyle();
HSSFDataFormat numberFormat = wb.createDataFormat();
numberCellStyle.setDataFormat(numberFormat.getFormat("0.00"));
HSSFCellStyle profitCellStyle = wb.createCellStyle();
HSSFDataFormat profitFormat = wb.createDataFormat();
profitCellStyle.setDataFormat(profitFormat.getFormat("0.00%"));
for (Iterator it = data1.iterator(); it.hasNext();) {
Map m = (Map) it.next();
HSSFRow row = s.createRow(i++);
String name = (String) m.get("NAME");
cell = row.createCell(0);
cell.setCellValue(name);
String code = (String) m.get("CODE");
cell = row.createCell(1);
cell.setCellValue(code);
BigDecimal importPrice = (BigDecimal) m.get("IMPORT_PRICE");
cell = row.createCell(2);
cell.setCellStyle(numberCellStyle);
cell.setCellValue(importPrice.doubleValue());
BigDecimal closePrice = (BigDecimal) m.get("CLOSE_PRICE");
cell = row.createCell(3);
cell.setCellStyle(numberCellStyle);
cell.setCellValue(closePrice.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
String profit = (String) m.get("PROFIT");
cell = row.createCell(4);
cell.setCellValue(profit);
cell = row.createCell(5);
cell.setCellFormula(getProfitFomulaByRowNum(row.getRowNum()));
cell.setCellStyle(profitCellStyle);
}
wb.write(fos);
fos.close();
读操作:
FileInputStream fis = new FileInputStream(
"D:/eclipse/workspaces/handworkspace/xyzq/xyzq-data/data/stockpool.xls"); // 根据excel文件路径创建文件流
POIFSFileSystem fs = new POIFSFileSystem(fis); // 利用poi读取excel文件流
HSSFWorkbook wb = new HSSFWorkbook(fs); // 读取excel工作簿
HSSFSheet sheet = wb.getSheetAt(0); // 读取excel的sheet,0表示读取第一个、1表示第二个.....
Map cateMap = cateMap();
// 获取sheet中总共有多少行数据sheet.getPhysicalNumberOfRows()
// log.info("sheet.getPhysicalNumberOfRows()="+sheet.getPhysicalNumberOfRows());
for (int i = 0; i < sheet.getPhysicalNumberOfRows(); i++) {
HSSFRow row = sheet.getRow(i); // 取出sheet中的某一行数据
if (row != null) {
StringBuffer sb = new StringBuffer();
sb.append(row.getCell(0).getStringCellValue()).append(" ")
.append(row.getCell(1).getStringCellValue())
.append(" ").append(
row.getCell(2).getDateCellValue()).append(
" ").append(
row.getCell(3).getNumericCellValue())
.append(" ").append(
row.getCell(4).getStringCellValue())
.append(" ").append(
row.getCell(5).getStringCellValue())
.append(" ");
System.out.println(sb);
Map param = new HashMap();
param.put("CODE", row.getCell(0).getStringCellValue());
param.put("NAME", row.getCell(1).getStringCellValue());
param.put("IMPORT_TIME", row.getCell(2).getDateCellValue());
param.put("IMPORT_PRICE", new BigDecimal(row.getCell(3)
.getNumericCellValue()).setScale(2,
BigDecimal.ROUND_HALF_UP));
param.put("DESCRIPTION", row.getCell(5)
.getStringCellValue());
param.put("RISK_PROMPT", row.getCell(6)
.getStringCellValue());
param.put("POOL", new Long(STOCK_POOL_TYPE_0));
param.put("CATE_ID", cateMap.get(row.getCell(4)
.getStringCellValue()));
this.insert("TG_STOCK_POOL", param);
}
}
} catch (Exception e) {
e.printStackTrace();
}
分享到:
相关推荐
标题中的"POI使用模板导出.zip"表明这是一个关于使用Apache POI库在Java中处理Excel模板并导出带有复杂表头(合并行和合并列)的案例。Apache POI是一个流行的开源库,专用于读取和写入Microsoft Office格式的文件,...
描述中提到的"附带poi使用说明文档"意味着这个压缩包不仅包含库文件,还提供了使用Apache POI的指导文档,方便开发者理解和应用。 Apache POI库的核心组件包括: 1. **HSSF (Horrible Spreadsheet Format)**:主要...
以下是对Java POI使用的一些核心知识点的详细说明: 1. **安装与引入**:首先,你需要在项目中添加Java POI的依赖。如果是Maven项目,可以在pom.xml文件中添加对应的依赖项,如`poi`, `poi-ooxml` 和 `poi-ooxml-...
在这个特定的例子中,我们将讨论如何使用POI库基于一个Excel模板文件循环输出数据行,并将结果导出为新的Excel文件。 首先,我们需要理解POI库的基本概念。POI提供了HSSF(Horizontally SpreadSheet Format)和XSSF...
在“POI使用方法表.doc”中,你可能会了解到以下知识点: 1. **安装与引入Apache POI**:通常,你需要将POI的JAR文件添加到你的项目类路径中,或者通过Maven或Gradle等构建工具来管理依赖。 2. **创建Word文档**:...
POI_3.8_API.CHM; POI3.5_HSSF_和XSSF_Excel操作快速入门手册.pdf; poi-bin-3.9-20121203.zip; poi使用总结.txt; POI整理.doc;
poi使用方法及介绍,是个很不错的导入导出excl很不错
在这个例子中,我们将探讨如何使用POI库来处理Word文档,特别是利用模板文件循环输出表格行并导出新的Word文档。这个过程在数据分析、报告生成或自动化文档制作等场景中非常有用。 首先,我们需要理解Word文档的...
本篇文章将深入探讨如何使用Apache POI基于模板来导出Excel文件,以满足数据展示和报告生成的需求。 首先,我们需要理解Apache POI的工作原理。POI库允许Java程序与Microsoft Excel的文件格式进行交互,提供了对XLS...
**Apache POI使用详解:** Apache POI提供了丰富的接口和类,用于处理Microsoft Office格式的文件。对于Word文档,主要使用的类有`XWPFDocument`(用于处理.docx文件)和`HWPFDocument`(用于处理.doc文件)。这些类...
POI 使用了一种叫做HSSF(Horizontally Stored Spreadsheet Format)的API来处理老版本的Excel(.xls)文件,而XSSF则是用于处理新的XML格式的Excel(.xlsx)文件。 2. **Apache POI for Android** 尽管Apache POI...
个人整理的POI解析EXCEL常用API详解 里面包括我在使用过程中的一些心得
以下是对Apache POI使用的一些核心知识点的详细说明: 1. **Excel处理**: - **HSSF与XSSF**: Apache POI提供了两种API来处理Excel文件。HSSF(Horrible Spreadsheet Format)用于读写老版本的`.xls`文件,而XSSF...
`commons-collections4-4.4.jar`:Apache Commons Collections库提供了各种集合框架的增强功能,POI使用它来优化数据处理。 `poi-examples-5.2.1.jar`:包含了一些示例代码,可以帮助开发者了解如何使用POI库来处理...
对于Excel(.xlsx或.xls)文件,POI使用HSSF(Horrible Spreadsheet Format)和XSSF(eXtended Spreadsheet Format)API,分别处理老版本的BIFF格式和新版本的OOXML格式。对于Word(.docx)文件,POI使用XWPF...
而对于Word文档,POI使用了XWPF(XML Word Processing Format)类来操作.docx文件。而POI-TL(Template Literal)则进一步简化了这一过程,提供了一种模板化的编程方式,使得在Java中生成和编辑复杂Word文档变得更加...
总的来说,“poi3.17详情版”是一个包含了详细示例代码的资源包,对于想要学习或提升Apache POI使用技巧的Java开发者来说,这是一个很好的学习材料。如果在使用过程中遇到问题,可以联系博主获取技术支持。
8. **commons-codec-1.5.jar**:Apache Commons Codec库,提供了一系列编码和解码算法,如Base64、Hex等,POI使用它来进行数据编码。 9. **commons-lang3-3.1.jar**:Apache Commons Lang库,提供了一些高级字符串...
2. **Android环境下的POI使用**:由于Android系统不直接支持Java的JAF(JavaBeans Activation Framework)和JDBC,所以使用POI时需要特殊处理。通常,开发者会使用第三方库如Apache POI-OOXML-Simple,这是一个轻量...
10. **poi-examples-4.0.1.jar**:这个库包含了一些示例代码,可以帮助开发者更好地理解和使用 POI,通过查看和运行这些例子,可以学习如何读取、写入和修改 Excel 文件。 通过这些库,开发者可以在 Java 应用程序...