【poi】用POI新建一个xlsx文件【或者说将数据存入到xlsx中】/【将数据从xlsx中获取到项目中】
第一部分:写入xlsx中
使用POI创建一个xlsx文件:
项目结构如下:
具体使用的POI中的
XSSFWorkbook xlsx对象
Sheet 工作簿对象
Row 行对象
Cell 单元格对象
FileOutputStream 流对象
代码如下:
package com.it.poiTest; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map; 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.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class CreateWorkBook {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
//1.xlsx文件对象---可以表示xls和xlsx格式文件的类
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//2.工作簿对象---新创建的xls需要新创建新的工作簿,offine默认创建的时候会默认生成三个sheet
Sheet sheet = workbook.createSheet("first sheet");
/**
* 3.这一截,封装数据
*/
List<Object[]> list = new ArrayList<Object[]>();
list.add(new Object[]{"empId","empName","empAge"});
list.add(new Object[]{"01","小明","18"});
list.add(new Object[]{"02","小犟","12"});
list.add(new Object[]{"03","小够","19"});
list.add(new Object[]{"04","小离","20"});
list.add(new Object[]{"05","小张","30"}); //4.行对象---声明行
Row row;
for(int i=0; i<list.size();i++){
row = sheet.createRow(i);
//5.列对象【单元格对象】---声明列
Object[] obj = list.get(i);
Cell cell = null;
for (int j = 0; j < obj.length; j++) {
cell = row.createCell(j);
cell.setCellValue(obj[j].toString());
}
} //6.未指定具体路径,则自动创建文件在项目下;若指定具体磁盘路径,也可以
FileOutputStream out = new FileOutputStream("createWorkBook.xlsx");
//7.将此xlsx文件以流的形式写出
workbook.write(out);
//8.关闭流
out.close();
System.out.println("createWorkBook success");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}
第二部分:从xlsx文件中读取到项目中
代码如下:
package com.it.poiTest; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; 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.xssf.usermodel.XSSFWorkbook; public class GetWorkBook { public static <E> void main(String[] args) {
//1。前三步获取xlsx文件对象
File file = new File("createWorkBook.xlsx");
try {
//2.
FileInputStream in = new FileInputStream(file);
//3。
XSSFWorkbook workbook = new XSSFWorkbook(in);
//4.获取工作簿对象
Sheet sheet = workbook.getSheetAt(0);
//Sheet sheet1 = workbook.getSheet("first sheet"); 效果一样
//5.迭代取出数据
Iterator<Row> rowItera = sheet.iterator();
List<Object[]> list =(List<Object[]>) new ArrayList<E>();
Row row;
while(rowItera.hasNext()){
row = rowItera.next();
Iterator<Cell> cellItera = row.cellIterator();
Cell cell;
while(cellItera.hasNext()){
cell = cellItera.next();
//6.打印
System.out.print(cell.getStringCellValue() + " ");
}
System.out.println("\n");
} } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} }
【poi】用POI新建一个xlsx文件【或者说将数据存入到xlsx中】/【将数据从xlsx中获取到项目中】的更多相关文章
- eclipse有时新建一个PHP文件或者是HTML文件没有快捷键太麻烦了,总要用鼠标点 怎么创建自己的快捷键呢?
问题:总是在eclipse上编写PHp程序和对应的HMTL模板文件,但是却没有可以直接新PHP文件和HTMl文件的快捷方式,苦恼. 在百度上搜了一下,我们是可以创建自己的组合快捷键的. 创建快捷键的方 ...
- 谷歌编码风格内容,新建一个xml文件,复制进去就可以在eclipse里面用了,命名--eclipse-java-google-style.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <profi ...
- android studio中断开SVN连接,并彻底清理项目中的.svn文件
首先,断开SVN连接: 在使用SVN过程中,我们会发现当我们第一次share到subversion的时候,下次就无法重新share了,也无法断开连接,就算我们将工程目录下的.svn目录删除它还是会无法 ...
- 把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中
把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中步骤如下: 把需要合并的文件放到同一个文件夹 在该文件夹中新建一个excel文件 打开新建的excel问价,把鼠标放到sh ...
- oracle问题:新建了一个PDM文件,建表后生成的sql语句中含有clustered
问题描述 为了在oracle中新增表,在PDM中建表,使用其生成的sql语句,但是建表不能成功,提示 ORA-00906: 缺失左括号 原因是多了clustered 关键字 情景重现 1. 新建一个p ...
- 13: openpyxl 读写 xlsx文件
1.1 openpyxl 基本使用 1.openpyxl 将xlsx读成json格式 #! /usr/bin/env python # -*- coding: utf-8 -*- # -*- codi ...
- Excel indirect引用其它xlsx文件内容作为下拉框
效果如下图: 在第一个excel文件中有一个下拉框 这里面的选项,需要从另外一个Excel文件中读取内容,另外一个Excel文件如下: 实现的步骤如下: 1.新建一个Excel文件select.xls ...
- Keil MDK入门---从新建一个工程开始
熟悉Keil C51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例, ...
- 新建一个类并绑定一个activity
1.新建一个类(.java 文件),继承Android.app.Activity 2.新建一个activity 文件 3.重写onCreate 方法,设置绑定activity 文件 @Override ...
随机推荐
- WIN7下使用VC2010调试uCOS-II 2.91
WIN7下使用VC2010调试uCOS-II 2.91 http://www.amobbs.com/thread-5462878-1-1.html ucos系统学习汇总 http://www.cnbl ...
- UVALive 6125 I’ve Got Your Back(gammon) 题解
http://vjudge.net/problem/viewProblem.action?id=37481 East Central Regional Contest Problem D: I’ve ...
- Song Jiang's rank list
Song Jiang's rank list Time Limit:1000MS Memory Limit:512000KB 64bit IO Format:%I64d & ...
- VS2010 使用时选择代码或双击时出错,点击窗口按钮后VS自动重启问题
VS2010 使用时选择代码或双击时出错崩溃,点击窗口按钮后VS自动重启问题 下载补丁,打上补丁之后,重启电脑,解决了问题. WindowsXP的下载地址:Windows XP 更新程序 (KB971 ...
- OpenStack 的Nova组件详解
Open Stack Compute Infrastructure (Nova) Nova是OpenStack云中的计算组织控制器.支持OpenStack云中实例(instances)生命周期的所有活 ...
- linux shell expr 使用
linux shell expr 使用 收藏人:春秋百味 -- | 阅: 转: | | 分享 非原创, 摘自:<LINUX与UNIX Shell编程指南> 17.5 expr用法 expr ...
- Fast Power
Calculate the a^n % b where a, b and n are all 32bit integers. Example For 2^31 % 3 = 2 For 100^1000 ...
- C++复数四则运算的实现
程序主要实现复数的加减乘,数乘,取共轭功能. 将所有函数都定义为了成员函数. 使用库函数atof将字符串转换为浮点型数据. 函数主要难点在于处理输入.由于需要判断输入是选择退出还是继续,所以用字符串来 ...
- net发送邮件
对于.NET而言,从2.0开始,发邮件已经是一件非常easy 的事了.下面我给出一个用C#群发邮件的实例,做了比较详细的注解,希望对有需要的朋友有所help.看了这篇BLOG,如果你还不会用.NET发 ...
- 【转】Solr安全设置——对外禁用管理后台
本文转自:http://www.devnote.cn/article/94.html 测试于:Solr 4.5.1, Jdk 1.6.0_45, Tomcat 6.0.37 | CentOS 5.7 ...