使用jxl,poi读取excel文件
作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作。
使用jxl读取excel文件
package com.sixthf.bi.sapp.util; import java.io.IOException;
import java.io.InputStream; import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException; import org.apache.struts.upload.FormFile; import com.got.util.uid.UUIDGener; public class PhoneUtil{ /**
* 读取xls文件内容
*
* @param file 想要读取的文件对象,importfilesn;
* @return sql语句
*/
public static String readPhoneExcel(FormFile formFile,String importfilesn) throws IOException, BiffException {
InputStream stream = formFile.getInputStream();
Workbook rwb = Workbook.getWorkbook(stream);
Sheet[] sheets = rwb.getSheets();
StringBuffer SBbuffer = new StringBuffer(); for(int i=0;i<sheets.length;i++) {
Sheet rs = rwb.getSheet(i);
String period = rs.getCell(0, 1).getContents().replace("年", "-").replace("月", "");//得到当前工作表的第二行第一列即账务周期
for(int j=1;j<rs.getRows();j++) {
String first = rs.getCell(0, j).getContents();
String phone = rs.getCell(1, j).getContents();//得到当前工作表的当前行的第二列即接入号码
if(!first.contains("合计")) {
if(!phone.equals("") && !phone.equals("小计:")) {
SBbuffer
.append("insert into CMMU_PAPERANSWER_TMP (SUBIMPORTFILESN,Importfilesn,answer1,answer2, answer5)values(")
.append("'")
.append(UUIDGener.getUUID().replaceAll("-", ""))
.append("','")
.append(importfilesn)
.append("','")
.append(period)
.append("','")
.append(phone)
.append("','"); for(int k=j+1;k<rs.getRows(); k++) {
phone = rs.getCell(1, k).getContents();
if(phone.contains("小计")) {
String costnum = rs.getCell(3, k).getContents();//得到当前工作表的当前行的第四列即费用 SBbuffer
.append(costnum)
.append("');")
.append("\n");
j = k;
break;
}
else continue;
}
}
else continue;
}
else break;
}
}
String string = SBbuffer.toString();
return string;
} }
使用poi读取excel
package com.sixthf.bi.sapp.util; import java.io.IOException;
import java.io.InputStream; import jxl.read.biff.BiffException; import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts.upload.FormFile; import com.got.util.uid.UUIDGener; public class PhoneUtil{ /**
* 读取xls文件内容
*
* @param file 想要读取的文件对象,importfilesn;
* @return sql语句
*/
public static String readPhoneExcel(FormFile formFile,String importfilesn) throws IOException, BiffException {
InputStream stream = formFile.getInputStream();
HSSFWorkbook rwb = new HSSFWorkbook(stream);
int numSheet = rwb.getNumberOfSheets();
StringBuffer SBbuffer = new StringBuffer(); for(int i=0;i<numSheet;i++) {
HSSFSheet rs = rwb.getSheetAt(i);
String period = rs.getRow(1).getCell((short)0).toString().replace("年", "-").replace("月", "");
for(int j=1;j<rs.getPhysicalNumberOfRows();j++) {
String first = rs.getRow(j).getCell((short) 0).toString();
String phone = rs.getRow(j).getCell((short) 1).toString();//得到当前工作表的当前行的第二列即接入号码
if(!first.contains("合计")) {
if(!phone.equals("") && !phone.equals("小计:")) {
SBbuffer
.append("insert into CMMU_PAPERANSWER_TMP (SUBIMPORTFILESN,Importfilesn,answer1,answer2, answer5)values(")
.append("'")
.append(UUIDGener.getUUID().replaceAll("-", ""))
.append("','")
.append(importfilesn)
.append("','")
.append(period)
.append("','")
.append(phone)
.append("','"); for(int k=j+1;k<rs.getPhysicalNumberOfRows(); k++) {
phone = rs.getRow(k).getCell((short) 1).toString();
if(phone.contains("小计")) {
String costnum = rs.getRow(k).getCell((short) 3).toString();//得到当前工作表的当前行的第四列即费用 SBbuffer
.append(costnum)
.append("');")
.append("\n");
j = k;
System.out.println(k);
break;
}
else continue;
}
}
else continue;
}
else break;
}
}
String string = SBbuffer.toString();
return string;
} }
jxl.jar包下载链接: http://pan.baidu.com/s/1i3k6ccP
poi.jar包下载链接: http://pan.baidu.com/s/1jGrVBCi
使用jxl,poi读取excel文件的更多相关文章
- JAVA使用POI读取EXCEL文件的简单model
一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10
使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu] 不显示删除回复 ...
- jspsmart(保存文件)+poi(读取excel文件)操作excel文件
写在前面: 项目环境:jdk1.4+weblogic 需求:能上传excel2003+2007 由于项目不仅需要上传excel2003,还要上传excel2007,故我们抛弃了jxl(只能上传exce ...
- 使用POI读取excel文件内容
1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...
- java使用jxl,poi解析excel文件
public interface JavaExcel { /** * 使用jxl写excel文件 */ public void writeJxlExcel(); /** * 使用jxl读excel文件 ...
- Java实现POI读取Excel文件,兼容后缀名xls和xlsx
1.引入所需的jar包: maven管理项目的话直接添加以下坐标即可: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -- ...
- 使用poi读取excel文件 Cannot get a text value from a numeric cell
我这样转换得到一个excel文本域的值 Cell cell = row.getCell(c); cell.setCellType(Cell.CELL_TYPE_STRING); String park ...
- spring boot 使用 POI 读取Excel文件
内容简介 本文主要介绍使用POI进行Excel文件的相关操作,涉及读取文件,获取sheet表格,对单元格内容进行读写操作,以及合并单元格的操作. Excel文件目录 Excel模板文件存了resour ...
随机推荐
- AspNetPager控件报错误: Syntax error, unrecognized expression: input#ctl00$ContentPlaceHolder1$Aspnetpager1_input问题解决[摘]
高版本IE,如IE10或者IE11在浏览页面时出现错误: Syntax error, unrecognized expression: input#ctl00$ContentPlaceHolder1$ ...
- ubuntu修改主机名
ubuntu修改主机名 主机名在/etc/hostname文件中了,只在打开这个文件进行修改,重启计算机即可. 一.查看主机名 $ hostname #查看主机名 cdyemail ...
- mysql数据导出excel格式+乱码解决
1:导出的SQL命令,只需要加上“FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' ” ...
- 公司系统的license授权
在我的电脑的myeclipse的whnaproject项目下.可直接编译生成license.xml中所需要的授权码. 引用了spring-license-0.02.jar. package com.w ...
- SQLServer2005删除log文件和清空日志的方案
数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作.可以通过直接删除log文件和清空日 ...
- 线程优先级抢占实验【RT-Thread学习笔记 3】
同时处于就绪状态的线程,优先级高的先执行. 高优先级就绪时,低优先级任务让出CPU,让高优先级任务先执行. 创建两个任务函数: //线程优先级抢占 void thread1_entry(void *p ...
- web应用虚拟目录的映射
1.新建一个web应用.在D盘新建一个news文件夹,文件夹下面新建一个html文件.如下图所示: 2.将web应用映射到服务器的虚拟目录 第一种方式: 2.1 用记事本打开tomcat目录下面的se ...
- Ubuntu开启22端口
[http://blog.csdn.net/baple/article/details/39288817] 安装OpenSSH Ubuntu缺省没有安装SSH Server,使用以下命令安装: sud ...
- contains 方法
不管在c#中还是java中,很多类型都有contains方法.它的原理是什么? 看一个java的例子 http://blog.csdn.net/fwwdn/article/details/674684 ...
- 洛谷 P3366 【模板】最小生成树 prim算法思路 我自己的实现
网上有很多prim算法 用邻接矩阵 加什么lowcost数组 我觉得不靠谱 毕竟邻接矩阵本身就不是存图的好方法 所以自己写了一个邻接表(边信息表)版本的 注意我还是用了优先队列 每次新加入一个点 ...