POI导入导出工作簿
来源:互联网 发布:js获取dom节点的方法 编辑:程序博客网 时间:2024/05/20 03:37
准备:myeclipse,poi-3.9.jar包
过程:创建Dynamic web project,吧jar包拷贝到webroot下的lib文件夹下。之后创建并运行一个java文件。
注意:1,必须是Dynamic web project,其他的有可能不行。
2. java 文件运行为Java Application
一、POI输出到工作簿
1.1数据类型样式修改
import java.io.FileOutputStream;import java.util.Calendar;import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.CellStyle;import org.apache.poi.ss.usermodel.CreationHelper;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;public class demo4 {public static void main(String[] args) throws Exception {Workbook wb=new HSSFWorkbook();//创建一个工作簿Sheet sheet=wb.createSheet("第一个sheet页");//创建sheet页Row row=sheet.createRow(0);//创建行/** * 以下为创建单元格 */Cell cell=row.createCell(0);//第一个单元格cell.setCellValue(new Date());/** * 日期类格式化 *///创建单元格样式CreationHelper creathelp=wb.getCreationHelper();//小的工具类CellStyle cellstyle=wb.createCellStyle();//单元格样式类cellstyle.setDataFormat(creathelp.createDataFormat().getFormat("yyyy-MM-dd hh:mm:ss"));cell=row.createCell(1);//第2个单元格cell.setCellValue(new Date());cell.setCellStyle(cellstyle);//加载样式cell=row.createCell(2);//第3个单元格cell.setCellValue(Calendar.getInstance());cell.setCellStyle(cellstyle);//加载样式/** * 其他类型的单元格数据 */row.createCell(3).setCellValue(1.2);//创建第一个单元格,值为1.2row.createCell(4).setCellValue("这是一个字符串");//创建第一个单元格,值为row.createCell(5).setCellValue(false);//创建第一个单元格,值为falseFileOutputStream fileOut=new FileOutputStream("E:\\用poi创建时间格式的单元格.xls");wb.write(fileOut);fileOut.close();System.out.println("12341234");}}<strong></strong>
1.2数据显示样式修改
import java.io.FileOutputStream;import java.util.Calendar;import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.CellStyle;import org.apache.poi.ss.usermodel.CreationHelper;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;//单元格样式public class demo6 {public static void main(String[] args) throws Exception {Workbook wb=new HSSFWorkbook();//创建一个工作簿Sheet sheet=wb.createSheet("第一个sheet页");//创建sheet页Row row=sheet.createRow(0);//创建行row.setHeightInPoints(30);creatcell(wb, row, (short)1, HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_BOTTOM);creatcell(wb, row, (short)2, HSSFCellStyle.ALIGN_FILL, HSSFCellStyle.VERTICAL_CENTER);creatcell(wb, row, (short)3, HSSFCellStyle.ALIGN_LEFT, HSSFCellStyle.VERTICAL_TOP);creatcell(wb, row, (short)4, HSSFCellStyle.ALIGN_RIGHT, HSSFCellStyle.VERTICAL_TOP);FileOutputStream fileOut=new FileOutputStream("E:\\用poi创建时间格式的单元格.xls");wb.write(fileOut);fileOut.close();System.out.println("12341234");}/** * 创建单元格设置对齐方式 * @param wb 工作簿 * @param row 行 * @param column 列 * @param halign 水平对齐方式 * @param valign 竖直对齐方式 */private static void creatcell(Workbook wb,Row row,short column,short halign,short valign){Cell cell=row.createCell(column);cell.setCellValue(new HSSFRichTextString("SB"));CellStyle cellStyle=wb.createCellStyle();cellStyle.setVerticalAlignment(valign);cellStyle.setAlignment(halign);cell.setCellStyle(cellStyle);}}
结果是:
二、POI从工作簿读取
2.1 简单,仅获取文本
excelExtractor.setIncludeSheetNames(false)的作用是设置是否显示sheet页名称。true:显示;false:不显示
import java.io.FileInputStream;import java.io.InputStream;import org.apache.poi.hssf.extractor.ExcelExtractor;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.POIFSFileSystem;public class demo5 {public static void main(String[] args) throws Exception {InputStream is=new FileInputStream("E:\\二货名单.xls");POIFSFileSystem fs=new POIFSFileSystem(is);HSSFWorkbook wb=new HSSFWorkbook(fs);ExcelExtractor excelExtractor=new ExcelExtractor(wb);excelExtractor.setIncludeSheetNames(false);//是否显示sheet页名称System.out.println(excelExtractor.getText());}}
2.2 按单元格获取
package com.ldl.poi;import java.io.FileInputStream;import java.io.InputStream;import org.apache.poi.hssf.extractor.ExcelExtractor;import org.apache.poi.hssf.usermodel.HSSFCell;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.poifs.filesystem.POIFSFileSystem;public class demo7 {public static void main(String[] args) throws Exception {InputStream is=new FileInputStream("E:\\名单.xls");POIFSFileSystem fs=new POIFSFileSystem(is);HSSFWorkbook wb=new HSSFWorkbook(fs);//获取第一个sheet页HSSFSheet hssfSheet=wb.getSheetAt(0);if (hssfSheet==null) {return;}for (int rowNum = 0; rowNum < hssfSheet.getLastRowNum(); rowNum++) {//遍历sheet页中的每一行HSSFRow hssfRow=hssfSheet.getRow(rowNum);if(hssfRow==null) {continue;}for (int cellNum = 0; cellNum < hssfRow.getLastCellNum(); cellNum++) {//遍历行中的每个单元格HSSFCell hssfCell=hssfRow.getCell(cellNum);if (hssfCell==null) {continue;}System.out.print(" "+getValue(hssfCell));}System.out.println();}}/** * 把读取的数据类型转成String * @param hssfCell * @return */private static String getValue(HSSFCell hssfCell) {if (hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN) {return String.valueOf(hssfCell.getBooleanCellValue());} else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC) {return String.valueOf(hssfCell.getNumericCellValue());}else {return String.valueOf(hssfCell.getStringCellValue());}}}
0 0
- POI导入导出工作簿
- 实际工作:----Poi报表导入导出
- poi导入导出excel
- POI导入导出
- poi excel导入导出
- POI实现导入导出
- POI导入导出
- POI导入/导出 EXCEL
- POI Excel导入导出
- poi excel导入导出
- poi导出导入
- POI-数据导入导出
- POI报表导入导出
- POI导入导出
- POI-数据导入导出
- POI导入导出excel
- POI导入导出
- poi导入导出excel
- APP漏洞自动化扫描专业评测报告(中篇)
- arm板 释放ttyS0作为通信串口(关闭调试串口)
- 冒泡排序
- 开发中的经典问题(AI)
- 数据结构之图---深度优先遍历---C++实现
- POI导入导出工作簿
- Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication 解决办法
- mysql的错误
- 上线
- Apache反向代理IIS
- java集合架构详解
- Android学习之--RelativeLayout实例 梅花布局
- liunx php 安装redis memcache 扩展
- hdu1394线段树求逆序数