利用java读取Excel中的数据!
使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet 中创建一个CSV (comma separated values)文件,并将这个文件以MIME,text/csv类型返回给浏览器,接着浏览器调用Excel并且显示CSV文件。这样只是说可以访问到Excel文件,但是还不能真正的操纵Excel文件,本文将给大家一个惊喜,向大家介绍一个开放源码项目,Java Excel API,使用它大家就可以方便地操纵Excel文件了。
Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为是使用Java编写的,所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。
Java Excel API 文档
http://www.andykhan.com/jexcelapi/
package com.etong.allen;
import java.io.*;
import java.util.*;
import com.roger.util.StringUtil;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
/**
* <p>Title: </p>
* <pre>Description: Excel数据导入到oracle数据库类.
* </pre>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: 易通技术有限公司</p>
* @author Allen
* @version 1.0
*/
public class ExcelImportOracle {
/**
* 用于返回三维数组的ArrayList.
*/
private static ArrayList subdata = new ArrayList();
/**
* Excel中的表名.
*/
private static String tablename;
/**
* 文件的路径
*/
private static String filePath;
/**
* 该方法为完成读取Excel中的数据并将数据插入到对应的数据库表中的操作(在调用前需要先调用setFilePath(String)这个方法.).
* @author Administrator
* @param data:读取Excel中的数据的数组.
* @deprecated:将读取Excel中的数据插入到对应的数据库表中. *
*/
public static void ExcelDataImportOracle(String filePath) throws Exception {
try {
ArrayList al = readExcel(filePath);
InsertData(al);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 读取Excel中的数据.将这些数据放入到一个三维数组中.
* @author Administrator
* @param filePath 文件路径.
* @deprecated:读取Excel中的数据将它放入到ArrayList数组中(此为三维数组).
*/
public static ArrayList readExcel(String filePath) {
try {
subdata.clear();//将静态ArrayList数组清空.(如果不清空原数据会不断累加)
InputStream is = new FileInputStream(filePath);
Workbook rwb = Workbook.getWorkbook(is);
// Sheet st = rwb.getSheet(0);//这里有两种方法获取sheet表,1为名字,而为下标,从0开始
// Sheet st = rwb.getSheet("Book1");// Excel中第一页的页名称.
Sheet st[] = rwb.getSheets();// 得到所有Excel中页的列表.
for (int a = 0; a < st.length; a++) {
ArrayList alList = new ArrayList();
ArrayList tablenames = new ArrayList();
ArrayList tableAndContents = new ArrayList();
tablename = st[a].getName().trim();
int b = 0;
for (int i = 1; i < st[a].getRows(); i++) {
ArrayList al = new ArrayList();
for (int j = 0; j < st[a].getColumns(); j++) {
Cell c00 = st[a].getCell(j, i);
// 通用的获取cell值的方式,返回字符串
String strc00 = StringUtil.toISO(c00.getContents().trim());
// 获得cell具体类型值的方式得到内容.
al.add(j, strc00);
}
alList.add(b, al);
b++;
}
tablenames.add(tablename);
tableAndContents.add(0, tablenames);
tableAndContents.add(1, alList);
subdata.add(a, tableAndContents);
}
rwb.close();
// 关闭
//System.out.println(subdata);// 输出
} catch (Exception e) {
e.printStackTrace();
}
finally
{
//删除上传文件
File file = new File(filePath);
boolean result = false;
if(file.exists())
{
result = file.delete();
}
else
{
System.out.println("文件没有找到,无法删除!");
}
if(result)
{
System.out.println("删除成功!");
}
else
{
System.out.println("删除失败!");
}
}
return subdata;
}
/**
* 将读取的Excel的三维数组数据进行对应的数据库表插入操作.
* @author Administrator
* @param data:读取Excel中的数据的数组.
* @deprecated:将读取Excel中的数据插入到对应的数据库表中.
*/
private static void InsertData(ArrayList data) {
try {
String tablename;
ArrayList Contents = new ArrayList();
for (int i=0; i<data.size(); i++){
tablename = ((ArrayList)((ArrayList)data.get(i)).get(0)).get(0).toString();
Contents = (ArrayList)((ArrayList)data.get(i)).get(1);
WfdefineDateOperate.currecorde(tablename,Contents);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 得到文件路径;
* @return filePath
*/
public String getFilePath() {
return filePath;
}
/**
* 设置文件路径的位置;
* @param filePath
*/
public void setFilePath(String filePath) {
ExcelImportOracle.filePath = filePath;
}
/**
* 将readExcel方法读出来的三维数组数据转换成二维数组数据.
* @param al
* @return 返回二维数组数据.
*/
public static ArrayList getDisplayData(ArrayList al)
{
ArrayList result = new ArrayList();
for(int i = 0;i < al.size();i ++)
{
ArrayList tmp = (ArrayList)((ArrayList)al.get(i)).get(1);
for(int j = 0;j < tmp.size();j ++)
{
result.add(tmp.get(j));
}
}
return result;
}
/**
* @param args
*/
public static void main(String[] args) {
}
}
import java.io.*;
import java.util.*;
import com.roger.util.StringUtil;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
/**
* <p>Title: </p>
* <pre>Description: Excel数据导入到oracle数据库类.
* </pre>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: 易通技术有限公司</p>
* @author Allen
* @version 1.0
*/
public class ExcelImportOracle {
/**
* 用于返回三维数组的ArrayList.
*/
private static ArrayList subdata = new ArrayList();
/**
* Excel中的表名.
*/
private static String tablename;
/**
* 文件的路径
*/
private static String filePath;
/**
* 该方法为完成读取Excel中的数据并将数据插入到对应的数据库表中的操作(在调用前需要先调用setFilePath(String)这个方法.).
* @author Administrator
* @param data:读取Excel中的数据的数组.
* @deprecated:将读取Excel中的数据插入到对应的数据库表中. *
*/
public static void ExcelDataImportOracle(String filePath) throws Exception {
try {
ArrayList al = readExcel(filePath);
InsertData(al);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 读取Excel中的数据.将这些数据放入到一个三维数组中.
* @author Administrator
* @param filePath 文件路径.
* @deprecated:读取Excel中的数据将它放入到ArrayList数组中(此为三维数组).
*/
public static ArrayList readExcel(String filePath) {
try {
subdata.clear();//将静态ArrayList数组清空.(如果不清空原数据会不断累加)
InputStream is = new FileInputStream(filePath);
Workbook rwb = Workbook.getWorkbook(is);
// Sheet st = rwb.getSheet(0);//这里有两种方法获取sheet表,1为名字,而为下标,从0开始
// Sheet st = rwb.getSheet("Book1");// Excel中第一页的页名称.
Sheet st[] = rwb.getSheets();// 得到所有Excel中页的列表.
for (int a = 0; a < st.length; a++) {
ArrayList alList = new ArrayList();
ArrayList tablenames = new ArrayList();
ArrayList tableAndContents = new ArrayList();
tablename = st[a].getName().trim();
int b = 0;
for (int i = 1; i < st[a].getRows(); i++) {
ArrayList al = new ArrayList();
for (int j = 0; j < st[a].getColumns(); j++) {
Cell c00 = st[a].getCell(j, i);
// 通用的获取cell值的方式,返回字符串
String strc00 = StringUtil.toISO(c00.getContents().trim());
// 获得cell具体类型值的方式得到内容.
al.add(j, strc00);
}
alList.add(b, al);
b++;
}
tablenames.add(tablename);
tableAndContents.add(0, tablenames);
tableAndContents.add(1, alList);
subdata.add(a, tableAndContents);
}
rwb.close();
// 关闭
//System.out.println(subdata);// 输出
} catch (Exception e) {
e.printStackTrace();
}
finally
{
//删除上传文件
File file = new File(filePath);
boolean result = false;
if(file.exists())
{
result = file.delete();
}
else
{
System.out.println("文件没有找到,无法删除!");
}
if(result)
{
System.out.println("删除成功!");
}
else
{
System.out.println("删除失败!");
}
}
return subdata;
}
/**
* 将读取的Excel的三维数组数据进行对应的数据库表插入操作.
* @author Administrator
* @param data:读取Excel中的数据的数组.
* @deprecated:将读取Excel中的数据插入到对应的数据库表中.
*/
private static void InsertData(ArrayList data) {
try {
String tablename;
ArrayList Contents = new ArrayList();
for (int i=0; i<data.size(); i++){
tablename = ((ArrayList)((ArrayList)data.get(i)).get(0)).get(0).toString();
Contents = (ArrayList)((ArrayList)data.get(i)).get(1);
WfdefineDateOperate.currecorde(tablename,Contents);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 得到文件路径;
* @return filePath
*/
public String getFilePath() {
return filePath;
}
/**
* 设置文件路径的位置;
* @param filePath
*/
public void setFilePath(String filePath) {
ExcelImportOracle.filePath = filePath;
}
/**
* 将readExcel方法读出来的三维数组数据转换成二维数组数据.
* @param al
* @return 返回二维数组数据.
*/
public static ArrayList getDisplayData(ArrayList al)
{
ArrayList result = new ArrayList();
for(int i = 0;i < al.size();i ++)
{
ArrayList tmp = (ArrayList)((ArrayList)al.get(i)).get(1);
for(int j = 0;j < tmp.size();j ++)
{
result.add(tmp.get(j));
}
}
return result;
}
/**
* @param args
*/
public static void main(String[] args) {
}
}
相关推荐
java读取excel数据导入数据库源码 java读取excel数据导入数据库源码
Java读取Excel内容 v Java读取Excel内容 Java读取Excel内容
java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...
java读取excel表格的数据,并将其保存!已经调试过了,可以使用!
代码是借助于apathe的poi.jar实现得读取excel内得数据,所以在应用程序中添加poi.jar包,并将需要读取的excel文件放入根目录即可。路径可以自行修改成绝对路径,一共需要用到得几个jar,都放在文件夹里面。
java操作excel(包括读取数据和写入数据)亲自测试成功 可以直接使用 控制台输出如下: 工作表名称:Sheet1 姓名 年龄 张三 18 李四 19 王五 20 工作表名称:Sheet2 工作表名称:Sheet3
实现java读取excel数据,内有测试数据及相应的jar包,运行无问题
java实现读取Excel数据,根据一定格式写入Word,包含源代码,所需jar包及打包后的可执行jar文件,解压后将ExcelTrans直接导入MyEclipse即可,项目上可能会出现一个小叉,但是可以正常运行。
通过Java读取Excel文件中的数据时,需要自动判断当前Cell中的数据格式是否日期格式,如果是就要做特殊处理,以便读出数据的格式与预想的相符。
java读取xls中的数据,每个对象对应多个属性值,根据每个对象的属性值来生成一个二维矩阵
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
java读取excel所有页的数据,可能会有bug 毕竟我测试是没有,小白一个,大佬勿喷啊,网上搜的资源然后改写的读取所有页,可能会有不足的地方。01年的弟弟,不喜勿喷
java读取excel表中数据(带注释)
JAVA_读取excel的数据,详细的介绍了java如何读取EXCEL文件,为你带来帮助
Java操作Excel,通过poi方式进行操作,下载文件包含demo、jar、api文档等
该资源为读取EXCEL模版,然后填充自己想要的数据,下下来后只需要修改一下你需要获取的行列进行设值即可
Java通过POI读取Excel遍历数据,根本word模板批量生成word文档,demo可运行,可根据需求修改
Java读取Excel解析为JavaBean。 本类使用apache下的poi,解决Java读取大数据量Excel时内存溢出问题。 轻松读取10W数据量,未测试上限。
用Java程序读取Excel表格里的内容并显示在Swing界面里。
利用java读取Excel中的数据的方法.pdf