最近看了点java对excel表的操作,没事写了个例子练习了一下

本文介绍了一种使用jxl库进行Excel文件读写的Java实现方式。通过具体代码示例展示了如何创建新的Excel文件并写入数据,同时也展示了如何读取现有Excel文件的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这个例子中我使用了一个开源的插件jxl。 
初次使用,还有很多不足之处,恳请大家的指教。代码如下: 

/** 

*/ 
package cn.wyh.IO; 

import java.io.File; 

/** 
* @author Administrator 

*/ 
public interface JavaExcelIo { 
/** 
* @param fileName 要生成的文件名称与位置 

*/ 
public void writeExcel(String fileName); 
/** 
* @param file 要读入的文件名称与位置 
* @return 
*/ 
public String readExcel(File file); 


/** 

*/ 
package cn.wyh.tool; 

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; 

import cn.wyh.IO.JavaExcelIo; 

/** 
* @author 王亚辉 

*/ 
public class JavaExcelImp implements JavaExcelIo{ 


@Override 
public String readExcel(File file) { 
//读取excel文件,文件名称为file 
StringBuffer sb = new StringBuffer(); 

Workbook wb = null; 
try { 
wb = Workbook.getWorkbook(file);  //创建一个工作薄 
} catch (BiffException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 


if(wb==null) 
return null; 

Sheet[] sheets = wb.getSheets(); 

if(sheets!=null&&sheets.length>0){ 
Sheet rs = wb.getSheet(0);   //创建一张sheet表 
for(int row=0;row<rs.getRows();row++){ 
//row代表sheet(0)表中的总行数 
for(int column=0;column<rs.getColumns();column++){ 
//column代表sheet(0)表中的总列说 
Cell cell = rs.getCell(column,row); 
String str = cell.getContents(); 
System.out.println("第"+(row+1)+"行,第"+(column+1)+"列:"+str.toString()); 
sb.append(str+"/t"); 

sb.append("/r/n"); 

sb.append("/r/n"); 


wb.close(); 
return sb.toString(); 



@Override 
public void writeExcel(String fileName) { 
//创建一个新的文件并写入,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(); 






package test.cn.wyh.tool; 


import java.io.File; 

import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 

import cn.wyh.tool.JavaExcelImp; 

public class JavaExcelImpTest { 

@Before 
public void setUp() throws Exception { 


@After 
public void tearDown() throws Exception { 


@Test 
public void testWriteExcel(){ 
String fileName = "E:/wyh.xls"; 
JavaExcelImp jei = new JavaExcelImp(); 
jei.writeExcel(fileName); 


@Test 
public void testReadExcel(){ 
String fileName = "E:/wyh.xls"; 
JavaExcelImp jei = new JavaExcelImp(); 
System.out.println(jei.readExcel(new File(fileName))); 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值