java 中的poi_Java中使用POI操作ExceL的读与
1.Java中使用POI操作ExceL的读与写
直接给代码
1.1导入依赖
org.apache.poi
poi
3.10-FINAL
org.apache.poi
poi-ooxml
3.10-FINAL
1.2 使用工具类
package cn.Poi;
import cn.domain.Customer;
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.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class ExcelUtils {
/**
* 、创建单元格
* @param excelDir 路径
* @param excelFileName 文件名
* @throws Exception
*/
public static void createExcel2007(File excelDir , String excelFileName) throws Exception{
// 1. 内存中创建一个excel工作薄
Workbook wb = new HSSFWorkbook(); //创建了一个2007之前格式的excel文件
// 创建页
createSheet(wb,10);
// 创建行和列
fillData(wb.getSheet("第0页"),10,10);
// 2. 保存这个excel 磁盘上
File excelFile = new File(excelDir,excelFileName);
final FileOutputStream out = new FileOutputStream(excelFile);
wb.write(out);
out.close();
}
/**
* 同上
* @param excelDir
* @param excelFileName
* @throws Exception
*/
public static void createExcel2008(File excelDir , String excelFileName) throws Exception{
// 1. 内存中创建一个excel工作薄
Workbook wb = new XSSFWorkbook();//创建了一个2007之前格式的excel文件
// 2. 保存这个excel 磁盘上
File excelFile = new File(excelDir,excelFileName);
final FileOutputStream out = new FileOutputStream(excelFile);
wb.write(out);
out.close();
}
/**
* 创建文档页码
* @param wb
* @param sheetNum
*/
public static void createSheet(Workbook wb , int sheetNum){
for (int i = 0; i < sheetNum; i++) {
wb.createSheet("第"+i+"页");
}
}
/**
* 创建单元格,并且在里面填充数字进行测试,写入测试
* @param sheet
* @param row
* @param col
*/
public static void fillData(Sheet sheet , int row , int col){
//创建行
for (int i = 0; i < row; i++) {
Row currentRow = sheet.createRow(i);
//每行多少个单元格
for (int i1 = 0; i1 < col; i1++) {
//获取单元格,并且设置单元格里面的值
currentRow.createCell(i1).setCellValue(i*col+i1);
}
}
}
/**、
* 测试读取数字,从第0页开始
* @throws Exception
*/
public static void readExcelint() throws Exception{
FileInputStream excelFile = new FileInputStream("C:/Users\\10596\\Desktop\\firstExcel.xls");
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(excelFile);
final HSSFSheet sheet = hssfWorkbook.getSheet("第0页");
//分别获取 文档中最后一行的行标,单元格
for (int i = 0 ; i
final HSSFRow row = sheet.getRow(i);
for (int j = 0 ; j
double value = row.getCell(j).getNumericCellValue();
System.out.println(value);
}
}
}
/**、
* 测试读取文字,从第0页开始
* @throws Exception
*/
public static void readExcelStr() throws Exception{
FileInputStream excelFile = new FileInputStream("C:/Users\\10596\\Desktop\\customerList.xls");
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(excelFile);
final HSSFSheet sheet = hssfWorkbook.getSheet("第0页");
//分别获取 文档中最后一行的行标,单元格
for (int i = 0 ; i
final HSSFRow row = sheet.getRow(i);
for (int j = 0 ; j
String stringCellValue = row.getCell(j).getStringCellValue();
System.out.println(stringCellValue);
}
}
}
/**
* 写入数据
* @throws Exception
*/
public static void db2excel() throws Exception{
List list = new ArrayList();
for(int i = 0; i < 100; i++){
Customer customer = new Customer();
customer.setId(i+"jack");
customer.setName("jack"+i);
customer.setAddress("测试"+i);
list.add(customer);
}
// 1. 内存中创建一个excel工作薄
Workbook wb = new HSSFWorkbook(); //创建了一个2007之前格式的excel文件
// 创建页
createSheet(wb,10);
// 创建行和列
Field[] declaredFields = Customer.class.getDeclaredFields();
//在第0页填充数据
Sheet sheet = wb.getSheet("第0页");
//获取集合的大小,间接性获取有多少个对象需要存入到文档
for (int i = 0; i < list.size() ; i++){
Customer customer = list.get(i);
//有多少对象就有多少行,创建单元行
Row row = sheet.createRow(i);
int col = 0;
for (Field field : declaredFields) {
//反射的 实体类有 私有属性,进行暴力反射
field.setAccessible(true);
//获取对象里面的值,填充到单元格中
String value = (String) field.get(customer);
row.createCell(col++).setCellValue(value);
}
}
// 2. 保存这个excel 磁盘上
File excelFile = new File("C:\\\\Users\\\\10596\\\\Desktop","customerList.xls");
final FileOutputStream out = new FileOutputStream(excelFile);
wb.write(out);
out.close();
}
public static void main(String[] args) throws Exception {
// createExcel2007(new File("C:\\Users\\10596\\Desktop"),"firstExcel.xls");
// readExcelint(); //读取填充的int数
//填充数据
db2excel();
//读取填充的字符串
readExcelStr();
}
}
1.3 使用写入时创建的实体类
package cn.domain;
public class Customer {
private String id;
private String name;
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
1.4 包结构,以及效果
包结构
写入的效果
读取文档打印的效果
标签:Java,String,poi,ExceL,new,POI,import,public,wb
来源: https://blog.csdn.net/Violet_201903027/article/details/100177857
java 中的poi_Java中使用POI操作ExceL的读与相关推荐
- java apache.poi_Java利用apache的POI操作Excel
最近在写一些报表的活,顺便总结下...第一篇博文,希望多多指教. 项目中经常会设计到一些数据的报表问题,目前java中操作Excel的插件也有很多 ,我说下用apache的POI操作Excel的方法. ...
- Java - Poi 操作 Excel
Java - Poi 操作 Excel 关注 "弋凡"(YiFan)微信公众号吧 记录简单笔记 做你的最爱 注意 XSSFWorkbook 对象是操作 .xlsx 格式的表格 HS ...
- execle java,Java使用POI操作Excel
Java使用POI操作Excel 1. POI操作Excel 1.1. 依赖 org.apache.poi poi 4.1.0 org.apache.poi poi-ooxml 4.1.0 org.a ...
- java使用poi操作excel(读、写)
摘要: Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2007 ...
- Java使用poi操作excel注意事项
Java使用poi操作excel注意事项 1.如果只需要获取sheet信息,用流模式打开文件即可获取,消耗内存少 2.上传的文件需要校验,防止Excel包含异常的缓存文件,缓存文件可能会有几百兆,会瞬 ...
- Java实战—POI操作Excel文档、读取、写入、合并单元格
一.POI项目简介 POI全称 Poor Obfuscation Implementation,利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:http: ...
- JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls)
JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls) *** POI的结构: ---*HSSF - 提供读写Microsoft Excel格式档案的功能. ---*XSSF - ...
- Java使用POI操作Excel文件
我们可以使用POI操作Excel文件,本文主要介绍:"导入POI的Maven依赖"."创建Poi对象"."Poi读取Excel工作表数目". ...
- java实现在线预览----poi操作excel转html及03、07版本兼容问题
poi操作excel转html及其兼容问题 excel03是读取文件整个内容转为字符串存进html,excel07是读取文件内容拼成字符串存进html /*** excel03转html* filen ...
最新文章
- Keras框架下的保存模型和加载模型
- Java中 实体类 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
- VS2010解决方案转换到VS2008
- easy_install与pip 区别
- [AWS vs Azure] 云计算里AWS和Azure的探究(5) ——EC2和Azure VM磁盘性能分析
- Linux 查看CPU信息,内存等信息
- 电脑休眠和睡眠的区别_关机、睡眠、休眠有啥区别?微软说非特殊情况不要关机...
- Linux的实际操作:时间日期类的实用指令(date cal)
- Docker学习三:Docker 数据管理
- 标准JavaBean
- get_class 方法
- 快了!华为Mate X国内发布时间曝光:另有麒麟990版本
- 腾讯、网易、新浪新闻网站爬虫编写记录及评论格式分析
- 门店超越星巴克背后,瑞幸成咖啡市场新航标
- JS获取当前时间的前一个小时及格式化时间
- SAP 采购申请审批
- 大陆中文网站流量排名前100
- 欧几里德 与 扩展欧几里得 学习笔记
- Intel SGX入门(一)——背景篇
- PMO项目经理须掌握的组织现状诊断技能【附诊断表】
热门文章
- 度量空间 赋范空间 向量空间的区别
- Python调用WPS API
- 【JSP】用户信息界面操作 ---- 用户信息修改
- h5画布动画_使用HTML5画布制作动画的漫画面板
- Z-BLOG 懒人一键采集插件,自动采集+发布+推送
- JavaWEB快速入门之验证码及课堂项目【04】
- java中的类的继承_Java中类的继承
- 记者:你为什么还不退休? | 任正非:我上午可以喝茶,下午再喝茶就睡不着了...
- [转] Windows下Hook DirectX
- 基于高通410c开发板,开发android端家庭控制中心APP(1)