作用:在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文件的更多相关文章

  1. JAVA使用POI读取EXCEL文件的简单model

    一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...

  2. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  3. 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10

    使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu]             不显示删除回复             ...

  4. jspsmart(保存文件)+poi(读取excel文件)操作excel文件

    写在前面: 项目环境:jdk1.4+weblogic 需求:能上传excel2003+2007 由于项目不仅需要上传excel2003,还要上传excel2007,故我们抛弃了jxl(只能上传exce ...

  5. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

  6. java使用jxl,poi解析excel文件

    public interface JavaExcel { /** * 使用jxl写excel文件 */ public void writeJxlExcel(); /** * 使用jxl读excel文件 ...

  7. Java实现POI读取Excel文件,兼容后缀名xls和xlsx

    1.引入所需的jar包: maven管理项目的话直接添加以下坐标即可: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -- ...

  8. 使用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 ...

  9. spring boot 使用 POI 读取Excel文件

    内容简介 本文主要介绍使用POI进行Excel文件的相关操作,涉及读取文件,获取sheet表格,对单元格内容进行读写操作,以及合并单元格的操作. Excel文件目录 Excel模板文件存了resour ...

随机推荐

  1. Centos7 修改ssh 默认端口号

    第一步.修改/etc/ssh/sshd_config #Port 22 //这行去掉#号 Port 3600 //将端口号改成3600 第二步:在使用SELinux的系统中,需要修改SELinux 使 ...

  2. oracle基础教程(8)oracle修改字符集

    oracle基础教程(8)oracle修改字符集 1.用dba连接数据库 -->sqlplus / as sysdba 2.查看字符集 -->SELECT parameter, value ...

  3. JAXB最佳实践

    JAXB主要用来实现对象和XML之间的序列化和反序列化. 本文主要总结JAXB基本使用方法和注意事项! 通过下文的XML示例内容进行JAXB的简单实践 <?xml version="1 ...

  4. 手机网页调试利器: Chrome

    新开发的网页需要在手机或是模拟机上运行测试, 可以借助 Chrome提供的手机网页预览程序进行简单调试.查看 制作的网页是否能够适合各种手机型号使用. 下面所以下如何使用Chrome调试多类型手机网页 ...

  5. PHP面向对象的魔术方法.png(不间断更新)

  6. hammerJs-v2.0.4详解

    一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...

  7. Elasticsearch初探

     elasticsearch中的概念同传统数据库的类比如下: Relational DB -> Databases -> Tables -> Rows -> ColumnsEl ...

  8. PC机上的COM1口和COM2口

    现在PC机一般有两个串行口COM1和COM2. 串口叫串行接口 串口与并口不同之处:数据和控制信息时一位接一位地传送出去的,虽然速度慢,但传送距离较并口会更长,因此若要进行较长距离的通行时,应该使用串 ...

  9. [杂] BOSE QC15维修小记

    有一句话大概是这样说的“其他的耳机是靠嘴说的,BOSE是靠耳朵听的”,2010年就开始馋QC3,直到2012年在Vancouver的BOSE店里,在震耳欲聋的模拟噪音中带上QC15那一刻,下了决心. ...

  10. [DFNews] Touch ID不是神话,指模依旧能搞定。

    扫描制作翻模,使用含石墨硅胶压膜,前者复制指纹纹路,后者欺骗活体检测.