POI技术
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"));//保留两位小数点
1 区域数据导入(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) 创建三层接口,类
- 通过spring组件扫描创建service,action的对象
- 通过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技术的更多相关文章
- java的poi技术读取Excel数据到MySQL
这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...
- java的poi技术写Excel的Sheet
在这之前写过关于java读,写Excel的blog如下: Excel转Html java的poi技术读,写Excel[2003-2007,2010] java的poi技术读取Excel[2003-20 ...
- java的poi技术读,写Excel[2003-2007,2010]
在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...
- java的poi技术读取Excel[2003-2007,2010]
这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...
- java的poi技术读取和导入Excel实例
本篇文章主要介绍了java的poi技术读取和导入Excel实例,报表输出是Java应用开发中经常涉及的内容,有需要的可以了解一下. 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用 ...
- java的poi技术读取Excel数据
这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...
- java poi技术读取到数据库
https://www.cnblogs.com/hongten/p/java_poi_excel.html java的poi技术读取Excel数据到MySQL 这篇blog是介绍java中的poi技术 ...
- java的poi技术读取Excel[2003-2007,2010]
这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...
- apache POI技术的使用
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 下载开发包: 解压上面的zip文件: 在项目中引入 ...
- Java中导入导出Excel -- POI技术
一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实 ...
随机推荐
- DNS域名解析负载均衡
- bzoj 3195 奇怪的道路
Written with StackEdit. Description 小宇从历史书上了解到一个古老的文明.这个文明在各个方面高度发达,交通方面也不例外.考古学家已经知道,这个文明在全盛时期有\(n\ ...
- 转载.Avalon-MM 阿窝龙妹妹应用笔记
Avalon Interface Special http://www.altera.com.cn/literature/manual/mnl_avalon_spec.pdf Avalon总线是SOP ...
- eclipse share project到svn时显示不被信任的证书,暂时接受也不行
svn: 方法 OPTIONS 失败于 “https://eping.net/svn/testproject”: SSL handshake failed: SSL 错误:在证书中检测到违规的密钥用法 ...
- python RabbitMQ队列使用
python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种queue都是只能在同一个进程下 ...
- Web缓存技术
本章导读 缓存主要是为了提高数据的读取速度.因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能. ...
- PHP MysqlI操作数据库(转)
1连接数据库. Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter. ...
- Linux LED字符设备驱动
// 申请IO资源 int gpio_request(unsigned gpio, const char *label); // 释放IO资源 void gpio_free(unsigned gpio ...
- 【转】 Pro Android学习笔记(九一):了解Handler(5):组件生命
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 对于activity,消息是在OnCrea ...
- 配置MapReduce插件时,弹窗报错org/apache/hadoop/eclipse/preferences/MapReducePreferencePage : Unsupported major.minor version 51.0(Hadoop2.7.3集群部署)
原因: hadoop-eclipse-plugin-2.7.3.jar 编译的jdk版本和eclipse启动使用的jdk版本不一致导致. 解决方案一: 修改myeclipse.ini文件即可解决. ...