1.excel左上角有绿色小图标说明单元格格式不匹配 
2.模板中设置自动计算没效果,需要加上sheet.setForceFormulaRecalculation(true);

FileInputStream fs = new FileInputStream(path);  //使用导出模板文件
POIFSFileSystem ps = new POIFSFileSystem(fs); //使用POI提供的方法得到excel的信息
FileOutputStream out = new FileOutputStream(outFileName); //向outFileName中写数据 HSSFWorkbook wb = new HSSFWorkbook(ps);
HSSFSheet sheet = wb.getSheetAt(0); //获取到工作表
sheet.setForceFormulaRecalculation(true); //设置自动计算 //隐藏:根据条件设置颜色:但是由于设置颜色后,就无法通过模板里面的公式做出计算,所以去掉
//字体:绿色、13号大小、水平垂直居中、保留两位小数
HSSFDataFormat df = wb.createDataFormat(); // 此处设置数据格式
Font font1 = wb.createFont();
font1.setColor(HSSFColor.SEA_GREEN.index);
font1.setFontHeightInPoints((short)13); //字体大小
font1.setFontName("宋体"); HSSFCellStyle style1 = wb.createCellStyle();
style1.setFont(font1);
style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
style1.setDataFormat(df.getBuiltinFormat("0.00"));//保留两位小数点

区域数据导入(Apache POI

操作office办公文档;

 

区域:国家划分行政单位。 省市区构成;

 

1.1 Jquery OCUpload一键上传插件

 

1、 传统文件上传:页面三要素

a) 表单提交的方式POST

b) 表单中enctype=multipart/form-data

c) 在表单中存在<input  type=file name=test>

2、 ocUpload使用:

a) 引入js文件

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>

<script type="text/javascript" src="${pageContext.request.contextPath }/js/ocupload/jquery.ocupload-1.1.2.js"></script>

b) 在页面提供任意的元素 给出id

c) 在页面加载完成后调用uplaod方法:动态修改html元素

 -

1.2 在区域页面使用ocUpload

1、 页面:/pages/base/area.jsp

 

 

1.3 在服务端接收上传文件

 

a) 创建三层接口,类

  1. 通过spring组件扫描创建service,action的对象
  2. 通过spring-data-jpa创建dao的对象

b) 完成注入

c) 配置struts2注解

d) 添加方法

e) 配置结果视图

1.4 Apache POI

 

 

官网:http://poi.apache.org/

 

导入依赖:

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>${poi.version}</version>

</dependency>

1.4.1 Demo

 

HSSF:操作07版本之前 后缀名xxx.xls

XSSF:操作07版本之后 后缀名xx.xlsx

 

 

 

需求:解析本地磁盘excel文件中内容:

 

 

public static void main(String[] args) throws Exception {

//解析本地磁盘exel文件 后缀名:xls

//文件目录

String pathname = "H:\\北京Java271期_速运快递\\速运快递项目-day04\\资料\\03_区域测试数据\\区域导入测试数据.xls";

//使用POI提供API读取文件

//:excel文件对象

//07版本  XSSFWorkbook

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(pathname)));

//解析文件中数据

//从文件对象中获取标签页

HSSFSheet sheet = workbook.getSheetAt(0);

//遍历标签页中行

for (Row row : sheet) {

//遍历每一行中单元格中数据

System.out.println();

for (Cell cell : row) {

System.out.print(cell.getStringCellValue()+"  ");

}

}

}

 

1.4.2 在项目中使用POI

//定义变量接收上传文件

private File upload;

//接收文件MIME类型,文件名称

private String uploadContentType;

private String uploadFileName;

public void setUpload(File upload) {

this.upload = upload;

}

public void setUploadContentType(String uploadContentType) {

this.uploadContentType = uploadContentType;

}

public void setUploadFileName(String uploadFileName) {

this.uploadFileName = uploadFileName;

}

/**

* @Description: 通过POI解析excel文件中数据

*/

@Action("areaAction_importXls")

public String importXls() throws Exception {

List<Area> list = new ArrayList<>();

//创建excel文件对象

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(upload));

//获取标签页

HSSFSheet sheet = workbook.getSheetAt(0);

//遍历标签页获取行

for (Row row : sheet) {

//忽略标题行

if(row.getRowNum()==0){

continue;

}

String id = row.getCell(0).getStringCellValue();

String province = row.getCell(1).getStringCellValue();

String city = row.getCell(2).getStringCellValue();

String district = row.getCell(3).getStringCellValue();

String postcode = row.getCell(4).getStringCellValue();

//创建区域对象

Area area = new Area(id, province, city, district, postcode, null, null);

list.add(area);

}

areaService.save(list);

//释放资源

workbook.close();

//由于提交表单到Iframe中,故配置结果视图也看不到

return NONE;

}



POI技术的更多相关文章

  1. java的poi技术读取Excel数据到MySQL

    这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...

  2. java的poi技术写Excel的Sheet

    在这之前写过关于java读,写Excel的blog如下: Excel转Html java的poi技术读,写Excel[2003-2007,2010] java的poi技术读取Excel[2003-20 ...

  3. java的poi技术读,写Excel[2003-2007,2010]

    在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...

  4. java的poi技术读取Excel[2003-2007,2010]

    这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...

  5. java的poi技术读取和导入Excel实例

    本篇文章主要介绍了java的poi技术读取和导入Excel实例,报表输出是Java应用开发中经常涉及的内容,有需要的可以了解一下. 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用 ...

  6. java的poi技术读取Excel数据

    这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...

  7. java poi技术读取到数据库

    https://www.cnblogs.com/hongten/p/java_poi_excel.html java的poi技术读取Excel数据到MySQL 这篇blog是介绍java中的poi技术 ...

  8. java的poi技术读取Excel[2003-2007,2010]

    这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...

  9. apache POI技术的使用

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 下载开发包: 解压上面的zip文件: 在项目中引入 ...

  10. Java中导入导出Excel -- POI技术

    一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实 ...

随机推荐

  1. 【解题报告】[动态规划]RQNOJ - PID82 / 又上锁妖塔

    原题地址:http://www.rqnoj.cn/problem/82 解题思路: 简单的动态规划 状态表示:DP[i][0]表示当前在第i层,且当前跳跃状态不可用,此时消耗的最短时间.   DP[i ...

  2. Java [Leetcode 383]Ransom Note

    题目描述: Given
 an 
arbitrary
 ransom
 note
 string 
and 
another 
string 
containing 
letters from
 al ...

  3. 【占位】HihoCoder 1160 : 攻城略地(并查集好题)

    攻城略地 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 A.B两国间发生战争了,B国要在最短时间内对A国发动攻击.已知A国共有n个城市(城市编号1, 2, …, n),城 ...

  4. Windows下运行Hadoop

    Windows下运行Hadoop,通常有两种方式:一种是用VM方式安装一个Linux操作系统,这样基本可以实现全Linux环境的Hadoop运行:另一种是通过Cygwin模拟Linux环境.后者的好处 ...

  5. MAC OS X常用命令总结

    附录:UNIX常用命令 ============================================================================ 1.  cd     ...

  6. UVA11796 Dog Distance

    题意 PDF 分析 问题可以转化为小问题,即两条狗分别在线段上运动. 然后用相对运动知识可以认为甲不动,乙在线段上运动. 小问题就转化为点到线段的最小或最大距离. 时间复杂度\(O(I \times ...

  7. 浅谈Sql各种join的用法

    1.left join.right join.inner join三者区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右 ...

  8. 关于 FastAdmin 中的 trait

    关于 FastAdmin 中的 trait 来自ThinkPHP5 官网的介绍 1 trait是一种为类似 PHP 的单继承语言而准备的代码复用机制.trait为了减少单继承语言的限制,使开发人员能够 ...

  9. Eclipse执行import命令导入maven项目时报错:Add a version or custom suffix using "Name template" in "Advanced" settings

    新建了两个maven项目在E盘workspace目录,后面移到workspace/app_engine目录下提交svn,再通过Eclipse的File->import导入时报错了: Projec ...

  10. php时间 显示刚刚 几分钟前等

    功能示例: $now = time();foreach($sys_res as $k => $v){ $day = intval(floor(($now - $v->system_time ...