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

java excel表格数据导入

2014-12-10 21:10 323 查看
jxl操作excel包括对象Workbook,Sheet ,Cell。
一个excel就对应一个Workbook对象,
一个Workbook可以有多个Sheet对象
一个Sheet对象可以有多个Cell对象

读取excel操作
通过Workbook,Sheet ,Cell这三个对象我们就可以实现Excel文件的读取工作。
1、 选取Excel文件得到工作薄
2、 选择工作表
3、 选择Cell
4、 读取信息

读取工作薄
选取Excel文件得到工作薄Workbook
Workbook workbook = Workbook.getWorkbook(new File("test.xls"));

读取工作表
通过Workbook的getSheet方法选择第一个工作表(从0开始)
Sheet sheet = workbook.getSheet(0);
也可以通过工作的名称来得到Sheet

读取单元格
通过Sheet的getCell方法选择位置为C1的单元格(两个参数都从0开始)
Cell c1 = sheet.getCell(0,0);

读取单元格的值
通过Cell的getContents方法
把单元格中的信息以字符的形式读取出来String str = c1.getContents();

Cell提供了一个getType方法(c1.getType() )
能够返回单元格的类型信息,同时JXL提供了一个CellType类用来预设Excel中的类型信息,而且JXL提供了一些Cell类的子类用来分别用来表示各种类型的单元格,如LabelCell,NumberCell,DateCell分别表示字符、数值、日期类型的单元格
CellType. LABEL CellType. DATE CellType.NUMBER

以释放资源:workbook.close()
当你完成对Excel电子表格数据的处理后,一定要使用close()方法来关闭先前创建的对象,以释放读取数据表的过程中所占用的内存空间,在读取大量数据时显得尤为重要

导入数据代码
package com.liu.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
@WebServlet("/uploadFile")
@MultipartConfig
public class UploadFileServlet extends HttpServlet{

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");

//获取文件部件part
Part part = req.getPart("upfile");

try {
Workbook book= Workbook.getWorkbook(part.getInputStream());
Sheet sheet=book.getSheet(0);

System.out.println(sheet.getColumns());
System.out.println(sheet.getRows());
for(int i=0;i<sheet.getRows();i++){
for(int j=0;j< sheet.getColumns ();j++){
Cell cell1=sheet.getCell(j,i);
String result=cell1.getContents();
System.out.print(result+"  ");
}
System.out.println();
}

book.close();
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}


本文出自 “老牛Java” 博客,请务必保留此出处http://liuyj.blog.51cto.com/2340749/1588460
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: