`

使用jxl.jar操作Excel

阅读更多

场景:将错误描述文件内容导入到Excel的指定列;

 

在工程的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在Android中操作Excel表格

    这里我们将深入探讨如何使用jxl.jar库在Android环境中操作Excel表格,特别是处理隐藏表的情况。 首先,jxl是一个Java库,它允许我们以编程方式读取和写入Microsoft Excel文件。由于Android系统基于Java,因此可以...

    使用jxl.jar 对Excel 进行读写

    下面将详细介绍如何使用`jxl.jar`进行Excel的读写操作。 首先,你需要将`jxl.jar`添加到你的项目类路径(Classpath)中。这通常可以通过以下几种方式完成: 1. 如果你是使用Eclipse或IntelliJ IDEA这样的IDE,你...

    jxl.jar包最新jar包亲测可用

    《使用jxl.jar包在Java中操作Excel文件的详尽指南》 在Java开发中,与Excel文件交互是一项常见的任务,比如数据导入、导出、分析等。jxl.jar库提供了一个强大的解决方案,使得开发者无需依赖Windows环境即可处理...

    jxl.jar excel操作包

    使用jxl.jar进行Excel操作的方法相对简单。首先,需要将jxl.jar添加到项目类路径中,然后就可以通过其提供的API来实现各种功能。例如,可以创建一个新的工作簿,添加工作表,设置单元格的值,甚至可以处理公式和图表...

    jxl.jar完整包

    本文将深入探讨如何使用jxl.jar这个完整的Java库来创建Excel文件,并设置字体样式、表格等格式。 首先,我们要理解jxl库的核心功能。jxl库支持读取和写入Excel 97-2003格式的文件(.xls),提供了一个API,允许...

    Java操作Excel(jxl.jar)

    本篇文章将深入探讨如何使用jxl.jar库来实现Java操作Excel。 首先,jxl是一个广泛使用的Java库,它允许开发者读写Microsoft Excel文件。它的主要优势在于简单易用且功能丰富,支持多种Excel格式,包括老版本的.BIFF...

    jxl.jar使用文档

    jxl.jar 通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。...

    jxl.jar_java操作excel表格的jar包

    本文将详细介绍如何使用`jxl.jar`进行Excel操作,并探讨其核心功能和用法。 首先,`jxl.jar`支持的Excel版本主要是微软的.BIFF格式,即Excel 97-2003的文件格式。虽然不直接支持.xlsx格式(Excel 2007及以后版本)...

    jxl.jar和例子

    描述中提到"本压缩文件包含了jxl.jar和使用例子",意味着我们不仅可以获取到处理Excel的库,还能通过提供的示例学习如何实际操作。这对于初学者或需要快速上手Excel操作的开发者来说是非常有价值的资源。 标签...

    jxl.jar没费下载

    《深入理解Java库jxl.jar:操作Excel的利器》 在Java编程中,处理Excel文件是一项常见的任务,尤其是在数据导入导出、报表生成等领域。jxl.jar作为一个纯Java实现的库,为开发者提供了便捷的方式来读取和写入Excel...

    java操纵excel的jar包(jxl.jar包 源码)

    java操纵excel的jar包

    jxl.jar包(2.6).zip

    jxl.jar是通过java操作excel表格的工具类库,开发过程中经常需要用到数据的导入导出功能,之前用的是POI,这次使用JXL,JXL相对于POI来说要轻量简洁许多,在数据量不大的情况下还是非常实用的。

    jxl.jar,解析excel所用到的jar包

    本文将详细探讨jxl.jar库的核心功能、使用方法以及相关API,帮助读者深入了解如何借助这个工具包来解析Excel文件。 jxl.jar是Java语言中的一款开源库,专门用于读写Microsoft Excel文件。它不仅支持读取现有的Excel...

    jxl.jar原版、修改后的jxl.jar解决web dynpro中乱码问题

    总结来说,本问题的解决方案是通过深入理解Java jar包的结构和操作,以及Web Dynpro与外部系统交互的方式,定位到jxl.jar中处理Excel文件的代码,并对其进行优化,以适应多语言环境,确保正确显示非ASCII字符。...

    jxl.jar操作Excel

    官网最新jxl-2.6.12.jar 是通过纯java操作excel表格的工具类库,支持Excel 95-2000的所有版本,生成Excel 2000标准格式,支持字体、数字、日期操作,能够修饰单元格属性,支持图像和图表

    jxl.jar及其API,java操作excel

    使用jxl.jar,你可以无需依赖Microsoft Excel应用程序就能在Java程序中处理Excel文件,这在服务器端操作或自动化流程中特别有用。 JExcelApi的版本jexcelapi_2_4_5是一个稳定版,它修复了前一版本的一些已知问题,...

    jxl.jar,excel数据工具类导出jar

    1. **基本操作**:使用jxl.jar,你可以创建新的Excel工作簿,添加工作表,设置单元格的值,以及读取已有Excel文件中的数据。例如,可以创建一个新的Workbook对象,然后在这个工作簿中添加Sheet对象,再在Sheet上填充...

    excel 导出用的jxl.jar

    《使用jxl.jar进行Excel数据导出详解》 在IT领域,尤其是在数据分析、报表生成以及数据交换等场景中,Excel文件常常被用作数据存储和展示的工具。Java程序员经常需要处理与Excel文件的交互,比如导出数据到Excel。...

Global site tag (gtag.js) - Google Analytics