java excel工具类解析

不点 阅读:212 2021-03-31 23:24:18 评论:0

主要的任务还是贴代码,这段代码实现了基本的java操作excel进行导入导出的操作。

ReadWriteExcelUtil.java

package com.dsh.javaexcel.util; 
 
import java.io.File; 
import java.io.IOException; 
 
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; 
import jxl.write.biff.RowsExceededException; 
 
public class ReadWriteExcelUtil { 
 
	/** 
	 * @param args 
	 */ 
	public static void main(String[] args) { 
		String fileName = "d:" + File.separator + "test.xls"; 
		System.out.println(ReadWriteExcelUtil.readExcel(fileName)); 
		String fileName1 = "d:" + File.separator + "abc.xls"; 
		ReadWriteExcelUtil.writeExcel(fileName1); 
	} 
 
	/** 
	 * 從excel文件中讀取所有的內容 
	 *  
	 * @param file 
	 *            excel文件 
	 * @return excel文件的內容 
	 */ 
	public static String readExcel(String fileName) { 
		StringBuffer sb = new StringBuffer(); 
		Workbook wb = null; 
		try { 
			// 构造Workbook(工作薄)对象 
			wb = Workbook.getWorkbook(new File(fileName)); 
		} catch (BiffException e) { 
			e.printStackTrace(); 
		} catch (IOException e) { 
			e.printStackTrace(); 
		} 
 
		if (wb == null) 
			return null; 
 
		// 获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了 
		Sheet[] sheet = wb.getSheets(); 
 
		if (sheet != null && sheet.length > 0) { 
			// 对每个工作表进行循环 
			for (int i = 0; i < sheet.length; i++) { 
				// 得到当前工作表的行数 
				int rowNum = sheet[i].getRows(); 
				for (int j = 0; j < rowNum; j++) { 
					// 得到当前行的所有单元格 
					Cell[] cells = sheet[i].getRow(j); 
					if (cells != null && cells.length > 0) { 
						// 对每个单元格进行循环 
						for (int k = 0; k < cells.length; k++) { 
							// 读取当前单元格的值 
							String cellValue = cells[k].getContents(); 
							sb.append(cellValue + "\t"); 
						} 
					} 
					sb.append("\r\n"); 
				} 
				sb.append("\r\n"); 
			} 
		} 
		// 最后关闭资源,释放内存 
		wb.close(); 
		return sb.toString(); 
	} 
 
	/** 
	 * 把內容寫入excel文件中 
	 *  
	 * @param fileName 
	 *            要寫入的文件的名稱 
	 */ 
	public static void writeExcel(String fileName) { 
		WritableWorkbook wwb = null; 
		try { 
			// 首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 
			wwb = Workbook.createWorkbook(new File(fileName)); 
		} catch (IOException e) { 
			e.printStackTrace(); 
		} 
		if (wwb != null) { 
			// 创建一个可写入的工作表 
			// Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 
			WritableSheet ws = wwb.createSheet("sheet1", 0); 
 
			// 下面开始添加单元格 
			for (int i = 0; i < 10; i++) { 
				for (int j = 0; j < 5; j++) { 
					// 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行 
					Label labelC = new Label(j, i, "这是第" + (i + 1) + "行,第" 
							+ (j + 1) + "列"); 
					try { 
						// 将生成的单元格添加到工作表中 
						ws.addCell(labelC); 
					} catch (RowsExceededException e) { 
						e.printStackTrace(); 
					} catch (WriteException e) { 
						e.printStackTrace(); 
					} 
 
				} 
			} 
 
			try { 
				// 从内存中写入文件中 
				wwb.write(); 
				// 关闭资源,释放内存 
				wwb.close(); 
			} catch (IOException e) { 
				e.printStackTrace(); 
			} catch (WriteException e) { 
				e.printStackTrace(); 
			} 
		} 
	} 
 
} 
也没有什么难的,都是别人写好的类和方法,我们只需要调用进行了,此处省略控制excel表格样式的代码,自己需要什么样式的可以查看Api

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们