在工程的build path中添加jxl.jar,网址:http://www.andykhan.com/jexcelapi/

 import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook; /**
* 将错误码的描述信息导入到表格中
*/
public class ErrorsToExcel {
//错误码文件的默认编码格式
private String defaultEncoding = "gb2312"; private String errorsXls = "errorMessage_batch_template.xls";
private String errorsSrcFile = "error-messages.properties"; //写入错误码的列
private int errorCodeIndex = 1;
//要写入错误描述的表格的列
private int[] errorDescIndexs = {5,6}; /**
* 将错误码的相关数据写入到给定的Excel中
*/
public boolean appendErrorsToXls(){
boolean flag = true; Workbook book = null;
WritableWorkbook writableWorkbook = null; try{
File excelFile = new File(errorsXls);
if(!excelFile.exists()){
System.out.println("要导入的Excel模板不存在");
return false;
} //获取可写入的Excel对象
book = Workbook.getWorkbook(excelFile);
writableWorkbook = Workbook.createWorkbook(excelFile, book); //获取可写入的表格对象
WritableSheet targetSheet = writableWorkbook.getSheet(0); //添加数据
if(!appendDataToSheet(targetSheet))
flag = false; //将表格中的数据写入Excel中
writableWorkbook.write(); }catch(Exception e){
System.out.println("将错误码放到Excel时出错");
flag = false;
}finally{
if(book!=null){
book.close();
}
if(writableWorkbook!=null){
try {
writableWorkbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} return flag;
} /**
* 将数据写入到表格Sheet中
*
* @param targetSheet 要写入数据的表格
* @return true表示写入成功 false表示失败
* @throws IOException
*/
private boolean appendDataToSheet(WritableSheet targetSheet) throws IOException{
boolean flag = true;
File file = null; file = new File(errorsSrcFile); if(!file.exists()){
System.out.println("错误码源文件不存在");
return false;
} //进行编码格式的转换
InputStreamReader streamReader = new InputStreamReader(new FileInputStream(file), defaultEncoding);
BufferedReader reader = new BufferedReader(streamReader);
String nextLine = ""; int row = 1; //处理格式
while((nextLine=reader.readLine())!=null){
String[] codeDescs = nextLine.split("=");
if(codeDescs.length<=1){ //非错误码内容行
continue;
} try{
//插入错误码单元格
Label codeLabel = generateLabel(errorCodeIndex-1, row, codeDescs[0]);
targetSheet.addCell(codeLabel); //插入描述信息单元格
for(int j=0; j<errorDescIndexs.length; ++j ){
Label descLabel = generateLabel(errorDescIndexs[j]-1, row, codeDescs[1]);
targetSheet.addCell(descLabel);
}
}catch(Exception e){
System.out.println("插入单元格信息出错");
} row++;
} return flag;
} private Label generateLabel(int col, int row, String contents){
//Label的构造函数中是列序号在前,行序号在后
return new Label(col, row, contents);
} public String getErrorsXls() {
return errorsXls;
}
public void setErrorsXls(String errorsXls) {
this.errorsXls = errorsXls;
}
public String getErrorsSrcFile() {
return errorsSrcFile;
}
public void setErrorsSrcFile(String errorsSrcFile) {
this.errorsSrcFile = errorsSrcFile;
} public static void main(String[] args){
ErrorsToExcel transformer = new ErrorsToExcel(); if(transformer.appendErrorsToXls()){
System.out.println("导入Excel成功");
}else{
System.out.println("导入Excel失败");
}
}
}

遇到的奇葩问题:

在Java工程中使用jxl时,一切正常。但是,日后将相应文件迁移到Spring MVC环境中使用时(且将jxl.jar加到了工程的build path中),但是加载工程时,每次调用到使用jxl的类时,都会报错jxl/write/writableCell类不存在;

解决方式:将jxl.jar放到WEB-INF/lib下解决;

使用jxl.jar操作Excel的更多相关文章

  1. poi-3.11-beta2-20140822.jar操作excel方法

    poi-3.11-beta2-20140822.jar操作excel方法 根据不同类型读取值的方法: // 获取单元格内不同类型的值 public String getValueByType(HSSF ...

  2. 使用JXL组件操作Excel和导出文件

    这段时间参与的项目要求做几张Excel报表,由于项目框架使用了jxl组件,所以把jxl组件的详细用法归纳总结一下.本文主要讲述了以下内容: JXL及相关工具简介 如何安装JXL JXL的基本操作 创建 ...

  3. java 使用jxl poi 操作excel

    java操作excel  创建.修改 xls 文件 JAVA操作Excel文件 Java生成和操作Excel文件 java导出Excel通用方法 Java 实现导出excel表 POI Java PO ...

  4. Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现

    以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...

  5. POI操作Excel

    POI和Excel简介 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作 ...

  6. java使用POI操作excel文件,实现批量导出,和导入

    一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...

  7. JAVA的POI操作Excel

    1.1Excel简介 一个excel文件就是一个工作簿workbook,一个工作簿中可以创建多张工作表sheet,而一个工作表中包含多个单元格Cell,这些单元格都是由列(Column)行(Row)组 ...

  8. POI操作Excel的API注意点总结

    本篇是关于POI.jar操作Excel的API注意事项 基数问题 说明:我使用的是POI 3.15版本的,在版本问题上建议大家,在版本稳定的基础上尽量使用高版本的 看过很多帖子在问一个问题:假设原来有 ...

  9. JXL.jar简单封装Excel读写操作

    1.分析 一个excel文件能够有多页,每页excel中能够有多行,每行中能够有多列.用面向对象的思想能够把一行中的某列看作是一个String对象,一行看作是一个包括多个列的对象.一页是包括多行的对面 ...

随机推荐

  1. Android(java)学习笔记160:Framework运行环境之 Android进程产生过程

    1.前面Android(java)学习笔记159提到Dalvik虚拟机启动初始化过程,就下来就是启动zygote进程: zygote进程是所有APK应用进程的父进程:每当执行一个Android应用程序 ...

  2. Java client 访问 memcached

    在测试项目中引入了memcached作为缓存层,以下是memcached的缓存配置和调用过程. linux下memcached安装过程 直接参考以前的博文linux下安装memcached过程  不再 ...

  3. Git之路--2

  4. mysql常见问题

    Q:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.111' (61)A: 找到my.cnf,把#bind-addres ...

  5. 自定义控件学习 Day44

    自定义控件学习 Day44 onMeasure 测量控件的宽高. onLayout 设置位置 onDarw 绘制控件 问题堆栈 1. 事件监听传递 最外层获取到控件,根据事件事件传递机制,返回值fal ...

  6. 获取汉字拼音 Java

    两种方法:一个是使用btye数组,一个是引入jar包进行操作. 1. public class CharacterParser { private static int[] pyvalue = new ...

  7. ios UIWebview本地加载H5网页

    注意两点 1.拖动文件到工程中选择create folder,文件夹为蓝色  --不要让文件参与编译,而只是让文件加入进来 2.加载方式pathforresorth   oftype   indire ...

  8. 获取键盘输入或者USB扫描枪数据

    /// <summary> /// 获取键盘输入或者USB扫描枪数据 可以是没有焦点 应为使用的是全局钩子 /// USB扫描枪 是模拟键盘按下 /// 这里主要处理扫描枪的值,手动输入的 ...

  9. 大数据基础知识:分布式计算、服务器集群[zz]

    大数据中的数据量非常巨大,达到了PB级别.而且这庞大的数据之中,不仅仅包括结构化数据(如数字.符号等数据),还包括非结构化数据(如文本.图像.声音.视频等数据).这使得大数据的存储,管理和处理很难利用 ...

  10. C++中delete和delete[]的使用

    偶然的机会要使用到动态分配整形数组,怎么删除new出来的东西一时有点模糊(也许一直就不知道),于是在VS上试了试(写代码时经常用这种方法去验证模凌两可的东西),总结出来有两点. 1.基本数据类型new ...