package com.hd.all.test.testjava;

import java.io.File;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern; import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException; public class ReadExcelJXL { public static void main(String[] args) throws BiffException, IOException {
//Exception in thread "main" jxl.read.biff.BiffException: Unable to recognize OLE stream
//1.不能读取2007版本的Excel;2.java生成的也不能读取 // File file = new File("E:/students2017-10-19_10_55_55.xls");
/**
* 读Excel内容
*/
File file = new File("C:\\Users\\Administrator\\Desktop\\新建文件夹\\1.xls");
Workbook wb = Workbook.getWorkbook(file);
Sheet s = wb.getSheet("Sheet1");
/**
* 写Excel内容
*/
WritableWorkbook book = Workbook.createWorkbook(new File("C:\\Users\\Administrator\\Desktop\\新建文件夹\\2.xls"));
WritableSheet sheet = book.createSheet("Sheet1", 0); String reg = "1[0-9][A-Z]{2,3}[0-9]{5,6}";//匹配15KF111111
Pattern p = Pattern.compile(reg); String reg1 = "100[0-9]{5}";//匹配10011111
Pattern p1 = Pattern.compile(reg1); String reg2 = "2[0-9]{11}-{0,1}[0-9]{0,1}";//匹配211111111111(-n)-->211111111111-2
Pattern p2 = Pattern.compile(reg2); Cell c = null;
int i = 1;
while(true){
c = s.getCell(0,i);//第i行第二列,0是第一列
Matcher m = p.matcher(c.getContents());//匹配15KF111111
Matcher m1 = p1.matcher(c.getContents());//匹配10011111
Matcher m2 = p2.matcher(c.getContents());//匹配211111111111
try {
if(m.find()){
sheet.addCell(new Label(2,i,m.group(0)));//如果是鼎捷料号输出
}else{
if(m2.find()){
sheet.addCell(new Label(2,i,m2.group(0)));
}else{
if(m1.find()){
sheet.addCell(new Label(3,i,m1.group(0)));//如果是10011111格式的输出
}
}
}
} catch (Exception e) {
} i++;
if (i > 753)//Excel的行数减1
break;
}
book.write();
try {
book.close();
} catch (WriteException e) {
e.printStackTrace();
}
} }

Java通过jxl读取Excel的更多相关文章

  1. Java 用jxl读取excel并保存到数据库(此方法存在局限,仅限本地电脑操作,放在服务器上的项目,需要把文件上传到服务器,详细信息,见我的别的博客)

    项目中涉及到读取excel中的数据,保存到数据库中,用jxl做起来比较简单. 基本的思路: 把excel放到固定盘里,然后前段页面选择文件,把文件的名字传到后台,再利用jxl进行数据读取,把读取到的数 ...

  2. JAVA利用jxl读取Excel内容

    JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. import java.io.File; import java.io.FileInp ...

  3. java中使用jxl读取excel中的数据

    package bboss; import java.io.File; import java.io.FileInputStream; import java.io.IOException; impo ...

  4. 利用jxl读取excel合并的单元格的一个小样例

    工作中我们可能要把Excel文件的记录保存到数据库, 今天我用jxl读取Excel文件时遇到了合并格的问题,记录例如以下: 如Excel文件例如以下: watermark/2/text/aHR0cDo ...

  5. java利用jxl操作Excel

    /** * 把从数据库查询到的数据,写入电子表格 * * @throws Exception */ public void createXls() throws Exception { Dao dao ...

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

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

  7. Java之POI读取Excel的Package should contain a content type part [M1.13]] with root cause异常问题解决

    Java之POI读取Excel的Package should contain a content type part [M1.13]] with root cause异常问题解决 引言: 在Java中 ...

  8. Java web项目 Jxl 读取excel 并保存到数据库,(从eclipse上移动到tomact服务器上,之路径更改,)

    最开始在eclipse中测试的时候,并没有上传到服务器上,后来发现,想要读取数据必须上传服务器然后把文件删除就可以了,服务器不可以直接读取外地的文件.用到jxl 1.上传到服务器 前端 <for ...

  9. 通过jxl 读取excel 文件中的日期,并计算时间间隔

    java读取excel里面的日期会出现相差8小时的问题. 比如excel里面有一个日期是:2012-7-2 17:14:03秒,用Cell cell=readSheet.getCell(colNo, ...

随机推荐

  1. nginx负载均衡(反向代理)

    6,安装nginx 6.1 依赖库安装  要安装在root根目录里,不要装在虚拟环境里面 yum install gcc-c++ pcre pcre-devel zlib zlib-devel ope ...

  2. day_5.07py

    正则:

  3. E - Cup

    The WHU ACM Team has a big cup, with which every member drinks water. Now, we know the volume of the ...

  4. 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第一周测验【中英】

    [吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第一周测验[中英] 第一周测验 - 深度学习简介 和“AI是新电力”相类似的说法是什么? [  ]AI为我们的家庭和办公室的个人设备供电 ...

  5. content-type对照表

  6. [No0000D2]ClearCSharp编程清理脚本批处理bat

    for /f "tokens=*" %%a in ('dir obj /b /ad /s ^|sort') do rd "%%a" /s/q for /f &q ...

  7. 知识驱动对话-Learning to Select Knowledge for Response Generation in Dialog Systems-阅读笔记

    今日看了一篇文章<Learning to Select Knowledge for Response Generation in Dialog Systems>,以知识信息.对话目标.对话 ...

  8. In abstract algebra, a congruence relation (or simply congruence) is an equivalence relation on an algebraic structure (such as a group, ring, or vector space) that is compatible with the structure in

    https://en.wikipedia.org/wiki/Congruence_relation In abstract algebra, a congruence relation (or sim ...

  9. 转:JDK动态代理为什么必须用接口以及与CGLIB的对比

    参考链接: JDK动态代理为什么必须用接口以及与CGLIB的对比 文章中提到:试验了JDK动态代理与CGLIB动态代理.从Spring的AOP框架介绍中得知对于使用接口的类,Spring使用JDK动态 ...

  10. XSL常用用法语句

    1.xsl的开始语句 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Tra ...