一、导入poi需要的jar包,最新jar包下载地址http://poi.apache.org/download.html导入导出Excel表所需的jar包如图所示。
二、导入导出Excel 例子:
package com.util.excel; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.TreeMap; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelUtil { public static final String HEADERINFO="headInfo"; public static final String DATAINFON="dataInfo"; /** * * @Title: getWeebWork * @Description: TODO(根据传入的文件名获取工作簿对象(Workbook)) * @param filename * @return * @throws IOException */ public static Workbook getWeebWork(String filename) throws IOException{ Workbook workbook=null; if(null!=filename){ String fileType=filename.substring(filename.lastIndexOf("."),filename.length()); FileInputStream fileStream = new FileInputStream(new File(filename)); if(".xls".equals(fileType.trim().toLowerCase())){ workbook = new HSSFWorkbook(fileStream);// 创建 Excel 2003 工作簿对象 }else if(".xlsx".equals(fileType.trim().toLowerCase())){ workbook = new XSSFWorkbook(fileStream);//创建 Excel 2007 工作簿对象 } } return workbook; } /** * * @Title: writeExcel * @Description: TODO(导出Excel表) * @param pathname:导出Excel表的文件路径 * @param map:封装需要导出的数据(HEADERINFO封装表头信息,DATAINFON:封装要导出的数据信息,此处需要使用TreeMap) * 例如: map.put(ExcelUtil.HEADERINFO,List<String> headList); * map.put(ExcelUtil.DATAINFON,List<TreeMap<String,Object>> dataList); * @param wb * @throws IOException */ public static void writeExcel(String pathname,Map<String,Object> map,Workbook wb) throws IOException{ if(null!=map && null!=pathname){ List<Object> headList = (List<Object>) map.get(ExcelUtil.HEADERINFO); List<TreeMap<String,Object>> dataList = (List<TreeMap<String, Object>>) map.get(ExcelUtil.DATAINFON); CellStyle style = getCellStyle(wb); Sheet sheet = wb.createSheet(); /** * 设置Excel表的第一行即表头 */ Row row =sheet.createRow(0); for(int i=0;i<headList.size();i++){ Cell headCell = row.createCell(i); headCell.setCellType(Cell.CELL_TYPE_STRING); headCell.setCellStyle(style);//设置表头样式 headCell.setCellValue(String.valueOf(headList.get(i))); } for (int i = 0; i < dataList.size(); i++) { Row rowdata = sheet.createRow(i+1);//创建数据行 TreeMap<String, Object> mapdata =dataList.get(i); Iterator it = mapdata.keySet().iterator(); int j=0; while(it.hasNext()){ String strdata = String.valueOf(mapdata.get(it.next())); Cell celldata = rowdata.createCell(j); celldata.setCellType(Cell.CELL_TYPE_STRING); celldata.setCellValue(strdata); j++; } } File file = new File(pathname); OutputStream os = new FileOutputStream(file); os.flush(); wb.write(os); os.close(); } } /** * * @Title: getCellStyle * @Description: TODO(设置表头样式) * @param wb * @return */ public static CellStyle getCellStyle(Workbook wb){ CellStyle style = wb.createCellStyle(); Font font = wb.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short)12);//设置字体大小 font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗 style.setFillForegroundColor(HSSFColor.LIME.index);// 设置背景色 style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setAlignment(HSSFCellStyle.SOLID_FOREGROUND);//让单元格居中 //style.setWrapText(true);//设置自动换行 style.setFont(font); return style; } /** * * @Title: readerExcelDemo * @Description: TODO(读取Excel表中的数据) * @throws IOException */ public static void readerExcelDemo() throws IOException{ /** * 读取Excel表中的所有数据 */ Workbook workbook=getWeebWork("E:/结算单503411妥投结算数据.xlsx"); System.out.println("总表页数为:"+workbook.getNumberOfSheets());//获取表页数 Sheet sheet =workbook.getSheetAt(0); int rownum=sheet.getLastRowNum();//获取总行数 for (int i = 0; i < rownum; i++) { Row row =sheet.getRow(i); Cell orderno = row.getCell(2);//获取指定单元格中的数据 System.out.println(orderno.getCellType()); short cellnum=row.getLastCellNum(); //获取单元格的总列数 for(int j=row.getFirstCellNum();j< row.getLastCellNum();j++){ Cell celldata = row.getCell(j); System.out.print(celldata+"\t"); } System.out.println(); } /** * 读取指定位置的单元格 */ Row row1 = sheet.getRow(1); Cell cell1 = row1.getCell(2); System.out.print("(1,2)位置单元格的值为:"+cell1); BigDecimal big = new BigDecimal(cell1.getNumericCellValue());//将科学计数法表示的数据转化为String类型 System.out.print("\t"+String.valueOf(big)); } public static void main(String[] args) throws IOException { readerExcelDemo(); Workbook wb = new XSSFWorkbook(); Map<String,Object> map = new HashMap<String,Object>(); List headList = new ArrayList();//表头数据 headList.add("下单时间"); headList.add("结账时间"); headList.add("订单编号"); headList.add("订单金额"); headList.add("用户名"); List dataList = new ArrayList();//表格内的数据 for (int i = 0; i < 15; i++) { TreeMap<String,Object> treeMap = new TreeMap<String, Object>();//此处的数据必须为有序数据,所以使用TreeMap进行封装 treeMap.put("m1", "2013-10-"+i+1); treeMap.put("m2", "2013-11-"+i+1); treeMap.put("m3", "20124"+i+1); treeMap.put("m4", 23.5+i+1); treeMap.put("m5", "张三_"+i); dataList.add(treeMap); } TreeMap<String,Object> treeMap1 = new TreeMap<String, Object>(); treeMap1.put("asd", null); treeMap1.put("猪头", "zhutou"); dataList.add(treeMap1); map.put(ExcelUtil.HEADERINFO, headList); map.put(ExcelUtil.DATAINFON, dataList); writeExcel("E:/test.xlsx", map, wb); } }
导出结果:
相关推荐
在Java中,它允许开发者创建、修改和读取Excel工作簿、工作表以及单元格的数据。POI库不仅支持基本的文本和数字操作,还支持更高级的功能,如公式计算、样式设置和图表创建。 2. **创建Excel图表** 要生成Excel图表...
在这个场景中,我们关注的是如何使用POI库在Java中生成Excel表格。以下是对标题、描述和标签所涉及知识点的详细说明: 1. **Apache POI 简介** Apache POI 是Java平台上的一个库,它允许开发者读写Microsoft ...
在IT行业中,处理数据时Excel表格经常被用作数据存储和分析的工具。JXL和Apache POI是两个Java库,专门设计用于读取、写入和操作Excel文件。这两个库为开发者提供了便利,使他们能够在Java应用程序中无缝地与Excel...
以下是一个简单的POI读取Excel文件的例子: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import ...
本示例"Android自定义excel表格demo"提供了一个解决方案,它不仅能够生成Excel表格,还支持用户左右滑动查看更多的数据。下面将详细解释这个Demo中涉及的关键知识点。 1. **使用库**: 在Android中,由于原生SDK并不...
本Demo——"使用PoI读取Excel插入库的Demo"专注于演示如何利用Apache POI库来读取Excel文件,并将这些数据有效地存入MySQL数据库中。Apache POI是Java社区开发的一个开源项目,它提供了对Microsoft Office格式(如...
2. **读取模板**: 使用POI的XSSFWorkbook类打开模板文件,这将返回一个Workbook对象,代表整个Excel文件。然后,通过工作簿获取对应的Sheet对象,这对应Excel中的工作表。 ```java FileInputStream fis = new ...
本文将深入探讨如何使用POI库中的XSSFWorkbook类进行Excel表格的基本操作。 一、XSSFWorkbook简介 XSSFWorkbook是Apache POI库中处理.xlsx(Excel 2007及以上版本)文件的核心类。它基于OOXML(Office Open XML)...
本项目“读取Excel Demo&Servlet Demo”提供了一个实例,演示了如何利用Java技术栈实现从Excel文件中读取数据,并通过Servlet框架将数据动态展示在网页上。以下将详细介绍其中涉及的关键知识点: 1. **Eclipse**:...
在这个"poi导出world、excel的demo"中,我们将探讨如何使用Apache POI库来创建和导出Word与Excel文档。 首先,让我们关注Excel文件的导出。Apache POI提供了HSSF和XSSF两个API,分别用于处理老版本的.BIFF8格式(....
本示例将深入探讨如何在C#中不依赖Microsoft Office组件来读取Excel表格数据,这通常通过使用第三方库或者.NET Framework提供的System.Data.OleDb组件实现。 首先,我们介绍最常用的方法之一,即使用`System.Data....
本示例("java操作excel表格的demo")将教你如何使用Java来读取、修改和创建Excel文件,主要涉及Apache POI库,这是一个强大的开源库,专门用于处理Microsoft Office格式的文件。 **Apache POI简介** Apache POI 是...
5. **读取数据**:对于读取Excel文件,你需要先打开文件,然后遍历工作簿、工作表、行和单元格来获取数据。 ```java Workbook workbook = WorkbookFactory.create(new File("input.xlsx")); Sheet sheet = workbook...
本Demo主要展示了如何在Android设备上实现二维码扫描并结合Excel表格的读写功能。以下是对这个主题的详细阐述。 首先,我们需要理解的是,Android系统本身并不支持直接处理Excel文件,因此需要借助第三方库或者服务...
在“poi导入导出DEMO”这个示例中,我们将聚焦于如何使用Java POI来实现Excel文件的导出功能,并且在浏览器中弹出下载对话框。 首先,我们需要引入POI相关的依赖库。在Maven项目中,可以在pom.xml文件中添加以下...
Apache POI是Java平台上的一个开源库,主要用于读取和写入Microsoft Office格式的文件,如Excel(.xlsx, .xls)。 在描述中提到的“一个小demo”,暗示了这是一个简单的应用实例,其主要功能是提供一个直接下载...
导入项目如果不能正常运行,请按下面步骤:项目右键->properties->java build path->order and export->把poi-3.9-20121203.jar打钩,然后确定!运行项目,看控制台打印信息。
读取excel表格数据,实现批量插入数据的功能,资源包括:读取excel表格的工具类、导入excel表格的示例demo、pom文件的引用等,支持多级表头等多种excel表格形式,可拓展复用性强。欢迎大家评论下载~
这个压缩包“安卓Excelwordppt文档读写相关-adnroid二维码扫描机终端Excel表格操作的demo.rar”提供了一个示例项目,帮助开发者了解如何在Android应用中实现这些功能。 首先,对于Excel文档的读写,Android开发者...
"POI将word转HTML.zip"和"demo1.zip"可能包含具体的Java代码示例,用于演示如何实现Word到HTML的转换以及数据库数据导出到Excel的操作。解压后,开发者可以查看源代码并根据自己的需求进行调整和应用。 总结,Java...