使用poi读写Excel------demo
package com.js.ai.modules.pointwall.interfac; import java.io.FileInputStream;
import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
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; public class TestExcel {
/**
*
* @Title: testReadExcel
* @Description: 读取Excel * @return: void
*/
public void testReadExcel(){
try {
// 读取Excel
Workbook wb = new XSSFWorkbook(new FileInputStream("D:\\javatest\\2.xlsx"));
// 获取sheet(篇)数目
for (int t = 0; t < wb.getNumberOfSheets(); t++) {
Sheet sheet = wb.getSheetAt(t);
Row row = null;
int lastRowNum = sheet.getLastRowNum();
// 循环读取
for (int i = 0; i <= lastRowNum; i++) {
row = sheet.getRow(i);
if (row != null) {
// 获取每一列的值
for (int j = 0; j < row.getLastCellNum(); j++) {
Cell cell = row.getCell(j);
String value = getCellValue(cell);
if (!value.equals("")) {
System.out.print(value + "|");
}
}
System.out.println();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @Title: getCellValue
* @Description: 读取单元格的值
* @param cell
* @return * @return: String
*/
private String getCellValue(Cell cell){
Object result="";
switch(cell.getCellType()){
case Cell.CELL_TYPE_STRING:
result=cell.getStringCellValue();
break;
case Cell.CELL_TYPE_NUMERIC:
result=cell.getNumericCellValue();
break;
case Cell.CELL_TYPE_BOOLEAN:
result=cell.getBooleanCellValue();
break;
case Cell.CELL_TYPE_FORMULA:
result=cell.getCellFormula();
break;
case Cell.CELL_TYPE_ERROR:
result=cell.getErrorCellValue();
break;
case Cell.CELL_TYPE_BLANK:
break;
default:
break;
}
return result.toString();
}
/**
*
* @Title: testWriteExcel
* @Description: 写入Excel文件 * @return: void
*/
public void testWriteExcel() {
String excelPath = "D:\\javatest\\2.xlsx";
Workbook workbook=null;
try {
workbook = new XSSFWorkbook();
} catch (Exception e) {
System.out.println("创建Excel失败: ");
e.printStackTrace();
}
if(workbook!=null){
Sheet sheet=workbook.createSheet("测试数据");
Row row0=sheet.createRow(0);
for(int i=0;i<12;i++){
Cell cell=row0.createCell(i, Cell.CELL_TYPE_STRING);
cell.setCellValue("列标题");
sheet.autoSizeColumn(i);//自动调整宽度
}
for (int rowNum = 1; rowNum < 16; rowNum++) {
Row row = sheet.createRow(rowNum);
for (int i = 0; i < 12; i++) {
Cell cell = row.createCell(i, Cell.CELL_TYPE_STRING);
cell.setCellValue("单元格" + String.valueOf(rowNum + 1)
+ String.valueOf(i + 1));
}
}
try {
FileOutputStream outputStream = new FileOutputStream(excelPath);
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
} catch (Exception e) {
System.out .println("写入Excel失败: ");
e.printStackTrace();
}
}
}
public static void main(String[] args) {
TestExcel testExcel=new TestExcel();
//testExcel.testReadExcel();
testExcel.testWriteExcel(); }
}
Workbook是一个接口,他有2个实现:HSSFWorkbook和XSSFWorkbook。前者是用来读取97-03版的Excel,扩展名为xls,后者是读取07及以后的版本,扩展名为xlsx。读入到workbook中,然后循环所有的sheet,在sheet循环所有的有效行和有效列。其中sheet.getLastRowNum()获得最后一行的索引值(从0开始),而sheet.getPhysicalNumberOfRows()则是获取的最后一行的行号(从1开始)。这里要注意的是循环列不是在sheet中循环,而是在row中循环。
使用poi读写Excel------demo的更多相关文章
- jxl读写excel, poi读写excel,word, 读取Excel数据到MySQL
这篇blog是介绍: 1. java中的poi技术读取Excel数据,然后保存到MySQL数据中. 2. jxl读写excel 你也可以在 : java的poi技术读取和导入Excel了解到写入Exc ...
- [转]POI读写Excel 修改
[转]POI读写Excel 修改 一.Excel基础 二.HSSF概况 三.通过usermodel读取文件 四.通过usermodel写入文件 五.通过eventusermodel读取文件 六.HSS ...
- poi读写Excel
poi读写Excel 对于一个程序员来说,文件操作是经常遇到的,尤其是对Excel文件的操作. 在这里介绍一下我在项目中用到的一个操作Excel的工具——POI.关于POI的一些概念,网络上很多,详细 ...
- Apache POI 读写 Excel 文件
目录 写入 Excel 文件 读取 Excel 文件 遍历 Excel 文件 需要的 maven 依赖 完整代码 写入 Excel 文件 // 写入 Excel 文件 // ============= ...
- POI读写Excel简述之写入
二.POI写入Excel文件(以Excel2003版为例,2007版就是根据文件扩展名xlsx将HSSFWorkbook换为XSSFWorkbook,及其Sheet.Row.Cell也相应替换) 1. ...
- POI读写Excel简述之读取
一.POI读取Excel文件(以Excel2003版为例,2007版就是根据文件扩展名xlsx将HSSFWorkbook换为XSSFWorkbook,及其Sheet.Row.Cell也相应替换) // ...
- 使用poi读写excel文件
使用poi库测试了一下读取excel文件,效果不错,跟大家分享一下. 第一列是数值型,第二列是字符型,代码如下: package poi; import java.io.FileInputStream ...
- java 使用POI读写Excel文件(兼容2003、2007)
package com.jadyer.demo; import java.io.File; import java.io.FileOutputStream; import java.io.IOExce ...
- java使用poi读写Excel
package com.demo.excel; import com.demo.pojo.Student; import org.apache.poi.hssf.usermodel.HSSFCell; ...
- Apache POI读写Excel
Apache POI是Apache软件基金会的开放源码函式库,POIAPI给Java程序对Microsoft Office格式档案读和写的功能. 官方文档 [https://poi.apache.or ...
随机推荐
- c# 多线程调用窗体上的控件 示例
private delegate void InvokeCallback(string msg); private void SetCountValue(string s) { if (this.fo ...
- DHL学习--<asp:literal
<asp:literal ID="ltlJS" runat="server"></asp:literal> 标签的Text属性可以放J ...
- socket函数sendto与send的区别
C:socket相关的sendto()函数简介 http://blog.csdn.net/flytiger_ouc/article/details/19634279 文中提到SOCK_DGRAM, S ...
- ubuntu16扩展屏设置
new ubuntu system setting - Expansion screen settings. 1,System Settings–>Displays 1,set big scre ...
- Oracle数据库中字段定义为Char类型,Hibernate用该字段进行动态绑定参数查询,获取不到结果的问题
一.问题背景 产生环境:oracle数据库,hibernate操作 定义了一个表 create table STORE_INFORMATION ( id CHAR(32) not null, name ...
- POJ 1951
把给定字符串翻译成目标字符串需要满足的条件是: 1.开头不能有空格 2.末尾不能有空格 3.给定标点前不能有空格 4.不能有A.E.I.O.U 5.空格不能和空格相邻 6.相同的字母只能出现1次 给出 ...
- 【集成学习】lightgbm调参案例
lightgbm使用leaf_wise tree生长策略,leaf_wise_tree的优点是收敛速度快,缺点是容易过拟合. # lightgbm关键参数 # lightgbm调参方法cv 代码git ...
- java运行jar命令提示没有主清单属性和找不到主类
推荐一个java运行jar命令提示没有主清单属性的百度经验的链接:https://jingyan.baidu.com/article/db55b60990f6084ba30a2fb8.html jav ...
- Codeforces1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)总结
第一次打ACM比赛,和yyf两个人一起搞事情 感觉被两个学长队暴打的好惨啊 然后我一直做傻子题,yyf一直在切神仙题 然后放一波题解(部分) A. Find a Number LINK 题目大意 给你 ...
- .NET/C# 使窗口永不获得焦点
有些窗口天生就是为了辅助其它程序而使用的,典型的如“输入法窗口”.这些窗口不希望抢夺其它窗口的焦点. 有 Win32 方法来解决这样的问题,WS_EX_NOACTIVATE 便是关键. 具体来说,是给 ...