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.apache.poi
poi-ooxml-schemas
4.1.0
1.2. 读取Excel
1.2.1. Excel文件内容
1.2.2. 代码
/**
* 读取excel
*/
public static void readExcel() {
InputStream inputStream = null;
XSSFWorkbook xssfWorkbook = null;
try {
String past = "/操作excel.xlsx";
inputStream = new FileInputStream(past);
xssfWorkbook = new XSSFWorkbook(inputStream);
//获取sheet的个数
int numberOfSheets = xssfWorkbook.getNumberOfSheets();
//获取指定的sheet
System.out.println(numberOfSheets);
//通过指定名称获取
XSSFSheet sheet = xssfWorkbook.getSheet("笔记本");
//通过下标获取
XSSFSheet sheetAt = xssfWorkbook.getSheetAt(1);
if (sheetAt != null) {
//最后一行有数据的
int lastRowNum = sheetAt.getLastRowNum();
XSSFRow row;
short lastCellNum;
XSSFCell cell;
for (int i = 0; i <= lastRowNum; i++) {
//获取指定行
row = sheetAt.getRow(i);
if (row == null) {
continue;
}
//最后一列有数据的
lastCellNum = row.getLastCellNum();
for (int j = 0; j <= lastCellNum; j++) {
cell = row.getCell(j);
if (cell == null) {
continue;
}
//数据类型
CellType cellType = cell.getCellType();
//字符串
if (CellType.STRING == cellType) {
System.out.println(cell.toString());
}
//数字
else if (CellType.NUMERIC == cellType) {
try {
System.out.println(cell.getDateCellValue());
} catch (Exception e) {
System.out.println(cell.toString());
}
}
//……
else {
System.out.println(cell.toString());
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
1.2.3. 控制台输出结果
2
便签名称
便签分类
创建时间
创建人
拥有人
小明的便签
学习便签
Tue Sep 03 00:00:00 CST 2019
小明
小明
小明的个人便签
个人便签
Sun Sep 08 00:00:00 CST 2019
小明
小明
1.3. 生成excel
1.3.1. 代码
/**
* 生成excel
*/
public static void creatExcel() {
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
//创建一个sheet
XSSFSheet sheet1 = xssfWorkbook.createSheet("第一个新建的sheet");
//设置高度和宽度,也可以每行每列单独分开设置
//参数为字符个数
sheet1.setDefaultColumnWidth(20);
sheet1.setDefaultRowHeight((short) (33 * 20));
//第二个参数为字符宽度的1/256
sheet1.setColumnWidth(5, 30 * 256);
//设置单元格样式
XSSFCellStyle cellStyle = xssfWorkbook.createCellStyle();
// 字体样式
Font fontStyle = xssfWorkbook.createFont();
fontStyle.setBold(true);
// 字体
fontStyle.setFontName("等线");
// 大小
fontStyle.setFontHeightInPoints((short) 11);
// 将字体样式添加到单元格样式中
cellStyle.setFont(fontStyle);
//水平居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);
//垂直居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//设置 单元格填充色
DefaultIndexedColorMap defaultIndexedColorMap = new DefaultIndexedColorMap();
XSSFColor clr = new XSSFColor(defaultIndexedColorMap);
byte[] bytes = {
(byte) 217,
(byte) 217,
(byte) 217
};
clr.setRGB(bytes);
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cellStyle.setFillForegroundColor(clr);
//设置单元格不为锁定,可编辑,反是用了这个样式的都可编辑
cellStyle.setLocked(false);
//锁定整个sheet不可编辑
sheet1.protectSheet("1231312");
//创建一行数据
XSSFRow row;
XSSFCell cell;
row = sheet1.createRow(0);
cell = row.createCell(0);
//设值
cell.setCellValue("2");
//合并单元格
CellRangeAddress cra = new CellRangeAddress(1, 1, 0, 3); // 起始行, 终止行, 起始列, 终止列
sheet1.addMergedRegion(cra);
//设置合并单元格的样式
// 使用RegionUtil类为合并后的单元格添加边框
// 下边框
RegionUtil.setBorderBottom(BorderStyle.MEDIUM_DASHED, cra, sheet1);
// 左边框
RegionUtil.setBorderLeft(BorderStyle.MEDIUM_DASHED, cra, sheet1);
row = sheet1.getRow(1);
//设置合并单元格内的文本样式
//但这个单元格的边框样式会覆盖上面设置的合并单元格的样式
CellUtil.getCell(row, 0).setCellStyle(cellStyle);
//设置单个单元格的样式
row = sheet1.createRow(2);
cell = row.createCell(0);
cell.setCellStyle(cellStyle);
//设置数据校验
//序列校验
String[] strArray = {
"星期一",
"星期二",
"星期三"
};
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet) sheet1);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createExplicitListConstraint(strArray);
CellRangeAddressList addressList = new CellRangeAddressList(3, 3, 0, 2);
XSSFDataValidation validation = (XSSFDataValidation) dvHelper.createValidation(dvConstraint, addressList);
//显示报错提示框
validation.setShowErrorBox(true);
validation.createErrorBox("错误提示", "只能选择指定的内容!");
//设置单元格右侧显示剪头符号,显示可用的选项,默认为true
validation.setSuppressDropDownArrow(true);
//显示提示信息
validation.setShowPromptBox(true);
validation.createPromptBox("提示信息", "请选择星期填入!");
sheet1.addValidationData(validation);
//保护工作薄不可被修改
xssfWorkbook.lockStructure();
//这个不知道有啥用
xssfWorkbook.lockRevision();
//锁定excel的窗口大小,不能无限制的横向,纵向拉伸。
xssfWorkbook.lockWindows();
xssfWorkbook.createSheet("第二个人sheet");
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream("/创建excel.xlsx");
xssfWorkbook.write(outputStream);
outputStream.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
1.3.2. 生成excel文件内容
execle java,Java使用POI操作Excel相关推荐
- 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-F ...
- Java - Poi 操作 Excel
Java - Poi 操作 Excel 关注 "弋凡"(YiFan)微信公众号吧 记录简单笔记 做你的最爱 注意 XSSFWorkbook 对象是操作 .xlsx 格式的表格 HS ...
- java apache.poi_Java利用apache的POI操作Excel
最近在写一些报表的活,顺便总结下...第一篇博文,希望多多指教. 项目中经常会设计到一些数据的报表问题,目前java中操作Excel的插件也有很多 ,我说下用apache的POI操作Excel的方法. ...
- java使用poi操作excel删除一整行
java使用poi操作excel删除一整行 需求1:删除excel表格第4行 代码示例: sheet.shiftRows(4, sheet.getLastRowNum(),-1); 第一个参数为行数( ...
- java使用poi操作excel(读、写)
摘要: Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2007 ...
- java excel 边框_【web开发】☆★之利用POI操作Excel表格系列教程【9】单元格边框处理...
[web开发]☆★之利用POI操作Excel表格系列教程[9]单元格边框处理 package csg.xiaoye.poidemo; import java.io.FileOutputStream; ...
- 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 - ...
最新文章
- [JS,CSS] - CSS圆角框组件
- css3.0动画,CSS3.0实现霓虹灯按钮动画特效的示例代码
- 【干货】七步,让你的网页表单更亲切
- 张岩 重庆大学 计算机学院,扬帆起,乘东风,气芳华——记重庆大学计算机学院新老生交流会...
- 微信小程序 PDF下载打印
- 看全域消费者运营Quick Audience如何实现自动化营销?
- 337. House Robber III 打家劫舍 III
- android 6.0 ios9谁快,没安卓6.0流畅?iOS 9突飞猛进终于不卡
- ajax上送src,使用script的src实现跨域和类似ajax效果
- Android开发笔记(三)屏幕分辨率
- [渝粤教育] 中国地质大学 运筹学1 复习题
- 2019语言与智能技术竞赛
- 清华大学计算机杜瑜皓,我在清华等你来|2015国际信息学奥赛全球第四名杜瑜皓:人生不搏枉少年...
- 工程制图与计算机绘图试卷A,工程制图与计算机绘图第4章
- C语言:51单片机看这一篇就够了
- matlab图例显示均值方差,MATLAB中均值、方差、均方差的计算方法
- ASC20-21超算大赛开战——有一群年轻人正在用超算的力量改变世界
- hp m281_惠普m281fdw驱动下载-hpm281fdw打印机驱动v44.3 官方版 - 极光下载站
- 关于Halcon的离心机试管槽定位
- Netty解决TCP粘包/拆包导致的半包读写问题
热门文章
- js实现css、addClass、removeClass和toggleClass
- DataTable:执行DataTable.Select(条件)返回DataTable的解决方法
- 蓝牙通信-打开和关闭蓝牙设备
- File Converter——万能格式转化神器
- CSDN博客利用HTML标签制作美观表格
- C语言之共享内存shm_open(二十五)
- 通过wifi使用nfs把ubuntu挂载到android
- Docker容器commit安装kali工具集
- C++ typeid输出类型
- Android Sutiod报错:Dx unsupported class file version 52.0(解决)