您的位置:首页 > 编程语言 > Java开发

java中使用JXL对Excel文件进行数据的写入、导出操作

2012-04-09 18:03 1226 查看
最近做项目需要用到批量导入数据库的功能,最后选择了比较常规的方式,使用了jxl组建来操作excel文件,这里做下小小的记录以便今后查阅。

1、读取Excel中的文件

Excel中有文件,工作簿,和单元格的概念,这里都有别的不多说了直接上代码。

package com.wsp.importFromExcel;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

public class UploadAction{

public List readDeptInfoVO(File file) throws Exception {

List listdeps = new ArrayList();

StringBuffer sb = new StringBuffer();

//创建excel文件的引用

Workbook wb = null;

try {

// 获取Excel文件对象

wb = Workbook.getWorkbook(file);

if (wb != null) {

// 获取了Excel文件就可以获取Excel文件中的sheet工作簿了

Sheet[] sheets = wb.getSheets();

if (sheets != null && sheets.length != 0) {

// 获取该工作表内的行数

int rows = sheets[0].getRows();//sheets[0]表示第1个工作簿

// 遍历行

for (int j = 1; j < rows; j++) {

// 获取当前行的所有单元格

Cell[] cells = sheets[0].getRow(j);

if (cells != null && cells.length != 0) {

System.out.println("Excel中的内容=cells[0]=="+cells[0].getContents().trim());

System.out.println("Excel中的内容=cells[1]=="+cells[1].getContents().trim());

System.out.println("Excel中的内容=cells[2]=="+cells[2].getContents().trim());

System.out.println("Excel中的内容=cells[3]=="+cells[3].getContents().trim());

System.out.println("Excel中的内容=cells[4]=="+cells[4].getContents().trim());

System.out.println("Excel中的内容=cells[5]=="+cells[5].getContents().trim());

System.out.println("Excel中的内容=cells[6]=="+cells[6].getContents().trim());

System.out.println("Excel中的内容=cells[7]=="+cells[7].getContents().trim());

System.out.println("Excel中的内容=cells[8]=="+cells[8].getContents().trim());

System.out.println("Excel中的内容=cells[9]=="+cells[9].getContents().trim());

}

}

}

}

} catch (Exception e) {

System.out.println(e.getMessage());

} finally {

wb.close();

}

return listdeps;

}

public static void main(String args[]) {

File file=new File("F:"+File.separator+"import.xls");

try {

file.createNewFile();

new UploadAction().readDeptInfoVO(file);

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

}

}

2、想Excel中写入内容

package com.wsp.importFromExcel;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

public class ImportAction {

public List writeDeptInfoVO(File file) throws Exception {

List listdeps = new ArrayList();

StringBuffer sb = new StringBuffer();

// 创建用于写入内容的Excel文件的引用

WritableWorkbook wb=null;

try {

// 获取Excel文件

wb=Workbook.createWorkbook(file);

if (wb != null) {

// 通过Excel文件获取第一个工作簿sheet

WritableSheet sheets=wb.createSheet("sheet1", 0);

//构建Excel表的表头

//Label label=new Label(i,j);//i表示列的位置,j表示行的位置

Label label1=new Label(0, 0, "用户名称");//第j行,第1列中的内容

sheets.addCell(label1);

Label label2=new Label(1, 0, "用户手机");//第j行,第2列中的内容

sheets.addCell(label2);

Label label3=new Label(2, 0, "用户邮箱");//第j行,第0列中的内容

sheets.addCell(label3);

Label label4=new Label(3, 0, "用户地址");//第j行,第3列中的内容

sheets.addCell(label4);

Label label5=new Label(4, 0, "用户生日");//第j行,第4列中的内容

sheets.addCell(label5);

// rows表示需要写入Excel文件的行数

int rows = 5;

for (int j = 1; j < rows; j++) {//j表示行数,i表示列数

Label label11=new Label(0, j, "用户名称");//第j行,第0列中的内容

sheets.addCell(label11);

Label label21=new Label(1, j, "用户手机");//第j行,第0列中的内容

sheets.addCell(label21);

Label label31=new Label(2, j, "用户邮箱");//第j行,第0列中的内容

sheets.addCell(label31);

Label label41=new Label(3, j, "用户地址");//第j行,第0列中的内容

sheets.addCell(label41);

Label label51=new Label(4, j, "用户生日");//第j行,第0列中的内容

sheets.addCell(label51);

}

}

} catch (Exception e) {

System.out.println(e.getMessage());

} finally {

wb.write();

wb.close();

}

return listdeps;

}

public static void main(String args[]) {

File file=new File("F:"+File.separator+"import2.xls");

try {

file.createNewFile();

new ImportAction().writeDeptInfoVO(file);

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息