java利用jxl读取excel和写入excel,ole错误

java处理Excel

导入jxl

首先需要下载jxl包

然后在目录创建个 lib文件夹 把 jxl.jar复制到这个目录文件夹下

java利用jxl读取excel和写入excel,ole错误

右键项目 点击 Properties

java利用jxl读取excel和写入excel,ole错误

解析路径

java利用jxl读取excel和写入excel,ole错误

然后 就可以使用了!

jxl读取Excel

package com.rj.excle;
/**
*
* @desc java jxl解析excel 读取
* @author qiaoyue
* @time 2019-09-28
*
*/
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class Excel {
public static void main(String[] args) throws Exception, IOException {
//实例化文件 解析excel的文件地址
File file = new File("123.xls");
//实例化jxl中的 workbook类方法 将文件实例传给他
Workbook workbook = Workbook.getWorkbook(file);
//获取工作表sheet1 0已经代表第一个表以此类推
Sheet sheet = workbook.getSheet(0);
//获取行数 getColumns
System.out.println("列 = "+sheet.getColumns());
//获取列数 getRows
System.out.println("行 = "+sheet.getRows());
//循环 行数
for(int i= 0;i<sheet.getRows();i++) {
//循环列数
for(int j= 0;j<sheet.getColumns();j++) {
//将行列都传进来 就获取了全部的单元格
//获取单元格属性值 行,列
Cell cell=sheet.getCell(i,j);
//打印这个 单元格里面的值打印出来
System.out.print(cell.getContents()+"\t");
}
//换行
System.out.println();
}
//关闭这个资源
workbook.close();
}

}

可能会报的错误

Unable to recognize OLE stream

1.使用jxl方式读取,可能只能支持xls格式的文件,对于xlsx格式就不再支持

2.如果是从网站导出的excel文件,有的网站比较坑,导出的并不是标准格式的excel,而是将html改扩展名为xls的“伪”excel文件。当用excel打开这类文件时,会弹窗提示其“扩展名和文件类型不匹配”是否还要打开。 而且,使用文本编辑器打开,会发现这个所谓xls文件其实是xml标签的文件。

解决方案

就是把excel表的后缀改为 xls 即可

java利用jxl读取excel和写入excel,ole错误

java写入excel

package com.rj.excle;
/**
* @desc java利用jxl写入excel
* @author qiaoyue
* @time 2019-09-28
*/

import java.io.File;
import java.io.IOException;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class Excel01 {

public static void main(String[] args) throws IOException, RowsExceededException, WriteException {
//实例化文件 (创建excel文件)
File file = new File("123.xls");
//检测是否存在文件 不存在就创建 存在就抛出异常
file.createNewFile();
//创建工作表
WritableWorkbook workbook =Workbook.createWorkbook(file);
//创建sheet 名字和第几个
WritableSheet sheet = workbook.createSheet("乔越",0);
//循环 单元格
for(int i = 0;i<10;i++) {
for(int j = 0;j<10;j++) {
//设置单元格
Label label = new Label(i,j,"79bk+"+i+j);
//添加到单元格
sheet.addCell(label);
}
}
//写入
workbook.write();
//关闭资源
workbook.close();
System.out.println("写入成功");


}

}

资源下载

上一篇

javaSocket实现简单客户端与服务端交互