使用jxl对excel文件进行读写操作
今天随便搜了一篇关于使用Java针对excel操作的文章,使用了jxl.jar来进行excel的读写操作,具体的API没有详细看,等到用的时候再去仔细研究,下面的程序是简单的,针对excel的内容读取,创建一个新的excel表格的程序,可以借鉴引用,并根据API参照深入学习。
使用Javaeye的代码编辑器显示出来问题很大,没办法,只能这么帖出来代码了。
======================================================================
/**读取Excel文件的内容
* @param file 待读取的文件
* @return
*/
public static String readExcel(File file){
StringBuffer sb = new StringBuffer();
int rowNum = 0;
String cellValue = "";
Workbook wb = null;
try {
//构造Workbook(工作薄)对象
wb = Workbook.getWorkbook(file);
} 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++)
{
//得到当前工作表的行数
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++){
cellValue = cells[k].getContents();
sb.append(cellValue + "\t");
}
}
sb.append("\r\n");
}
sb.append("\r\n");
}
}
//最后关闭资源,释放内存
wb.close();
return sb.toString();
}
/**生成一个Excel文件
* @param fileName 要生成的Excel文件名
*/
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)+"列");
labelC.setString("nihao");
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();
}
}
} 1 楼 waitmannee 2008-01-23 不知道对于office2003和office2007支不支持? 2 楼 xianglei 2008-01-24 jxl对多语言支持不是很好,建议用poi 3 楼 Pringles 2008-01-31 谢谢,有空去研究一下POI的用法,office2003支持的,但是2007我也没有尝试过,我估计问题不大,有机会一起探讨探讨~