excel作为java访问的数据库

excel作为java访问的数据库,第1张

通过数字查询?是在结果集 通过列的顺序查询不是 可以用数字指定列 也可以用那列的名进行查询 下面这个例子

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlStatement;

public class Test {

public static void main(String args[]){

try{

ClassforName("sunjdbcodbcJdbcOdbcDriver");

Connection con = DriverManagergetConnection("jdbc:odbc:testExcel","","");

Statement sta = concreateStatement();

ResultSet rs = staexecuteQuery("select from [sheet1$]");

Systemoutprintln("测试");

while(rsnext()){

Systemoutprintln(rsgetString("name"));

Systemoutprintln(rsgetInt("age"));

}

}catch(Exception e){

eprintStackTrace();

}

}

}

用jxl,首先下载一个jxljar包

然后自定义一个表,就是你要显示在excel里面的。比如

编号,姓名,性别,地址表里面的值要写死。比如

1 编号

2 姓名

3 性别

4 地址

查出你要导入的信息,查出自定义表里面的信息

调用下面的方法

OutputStream os = responsegetOutputStream();// 取得输出流

responsereset();// 清空输出流

responsesetHeader("Content-disposition",

"attachment;filename=Workreslistxls");// 设定输出文件

responsesetContentType("application/msexcel");// 定义输出类型

ExcelsBean excelBean = new ExcelsBean();

excelBeanexpordExcel(os, arrylist, list);// 调用生成excel文件bean,list是查出要导入的内容,arrylist是自定义的表内容

下面excelBeanexpordExcel()这个方法是调用的一个jsp

代码如下:

package comspkyzoaworkresutil;

import javaioOutputStream;

import javautilArrayList;

import javautilList;

import jxlWorkbook;

import jxlwriteLabel;

import jxlwriteWritableSheet;

import jxlwriteWritableWorkbook;

import comspkyzoaworkresvo;

public class ExcelsBean {

public String expordExcel(OutputStream os, List arrylist, List list)

throws Exception {

WritableWorkbook wbook = WorkbookcreateWorkbook(os); // 建立excel文件

WritableSheet wsheet = wbookcreateSheet("第一页", 0); // sheet名称

// 设置excel标题

for(int i=0;i<4;i++)

{ WorkresRow wagesrow=(WorkresRow)arrylistget(i);

wsheetaddCell(new Label(i, 0,wagesrowgetName()));

Systemoutprintln("标题:"+wagesrowgetName());

}

int num=listsize()/4;

Systemoutprintln("输出:"+num);

for(int k=0;k<num;k++){

for(int i=0;i<4;i++){

wsheetaddCell(new Label(i,1+k,(String)listget(i+k4)));

}

}

// 主体内容生成结束

wbookwrite(); // 写入文件

wbookclose();

osclose();

return "success";

}

}

如果 Excel 文件在文件系统中,则输出 Agent 模块是主程序。它首先获取文件系统中的 Excel 文件,然后可以启动多个线程去处理一批 Excel 文件。获取 Excel 文件的类型和版本号,根据 Excel 类型和版本号去获取用以描述 Excel 和关系数据的映射元数据,就是上节我们讲述的内容。进而解析元数据构建元数据的内存模型。并且采用缓存机制,同一种类型,并且是同一种版本的 Excel 文件应用内存中已经构建好的元数据模型来解析,不必每次都去重新获取元数据。这样可以显著的提高性能。

如果 Excel 文件是存放在 Domino 服务器上的,则需要一个 Domino Agent 程序主动调用输出 Agent 所提供的接口,批量的转换用解析程序从 domino 数据文档中解析出来的 excel 文件。(关于 Domino Agent 以及如何开发一个 Agent 程序,请见参考文献 2)

按照映射的元数据模型,应用 HSSF/XSSF 解析 Excel 的相应单元格、列,进而构造 SQL 语句(采用 JDBC 方式的模式)。在一个事务中提交该 Excel 文件所要执行的所有 SQL 语句, 保证一个 Excel 文件写入或者完全成功,或者出错回滚,并报告错误信息。如清单 2 所示。

//Insert into database

       List<String> sqlList = new ArrayList<String>();

       CADataStore  dataStore = new CADataStore();  

       if(tableSQLsMap!= null && tableSQLsMapsize()!= 0){

           Iterator<String> itsql = tableSQLsMapkeySet()iterator();

           while(itsqlhasNext()){

               String tableName = itsqlnext();

               List<String> theList = tableSQLsMapget(tableName);

               sqlListaddAll(theList);

           }

           dataStorewrite(sqlList); // 一个事务中完成所有 sql 语句的插入 *** 作,事务是以一个 excel

// 文件为单位的,可涉及到若干个表

       }

   }

参考下面方法:

import javaioFileInputStream;­

import javaioFileNotFoundException;­

import javaioIOException;­

import orgapachecommonsloggingLog;­

import orgapachecommonsloggingLogFactory;­

import orgapachepoihssfusermodelHSSFCell;­

import orgapachepoihssfusermodelHSSFRow;­

import orgapachepoihssfusermodelHSSFSheet;­

import orgapachepoihssfusermodelHSSFWorkbook;­

public class TestExcel {­

//记录类的输出信息­

static Log log = LogFactorygetLog(TestExcelclass); ­

//获取Excel文档的路径­

public static String filePath = "D://excelxls";­

public static void main(String[] args) {­

try {­

// 创建对Excel工作簿文件的引用­

HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));­

// 在Excel文档中,第一张工作表的缺省索引是0

// 其语句为:HSSFSheet sheet = workbookgetSheetAt(0);­

HSSFSheet sheet = wookbookgetSheet("Sheet1");­

//获取到Excel文件中的所有行数­

int rows = sheetgetPhysicalNumberOfRows();

//遍历行­

for (int i = 0; i < rows; i++) {­

// 读取左上端单元格­

HSSFRow row = sheetgetRow(i);­

// 行不为空­

if (row != null) {­

//获取到Excel文件中的所有的列­

int cells = rowgetPhysicalNumberOfCells();­

String value = ""; ­

//遍历列­

for (int j = 0; j < cells; j++) {­

//获取到列的值­

HSSFCell cell = rowgetCell(j);­

if (cell != null) {­

switch (cellgetCellType()) {­

case HSSFCellCELL_TYPE_FORMULA:­

break;­

case HSSFCellCELL_TYPE_NUMERIC:­

value += cellgetNumericCellValue() + ","; ­

break; ­

case HSSFCellCELL_TYPE_STRING:­

value += cellgetStringCellValue() + ",";­

break;­

default:­

value += "0";­

break;­

}

// 将数据插入到mysql数据库中­

String[] val = valuesplit(",");­

TestEntity entity = new TestEntity();­

entitysetNum1(val[0]);­

entitysetNum2(val[1]);­

entitysetNum3(val[2]);­

entitysetNum4(val[3]);­

entitysetNum5(val[4]);­

entitysetNum6(val[5]);­

TestMethod method = new TestMethod();­

methodAdd(entity);­

} catch (FileNotFoundException e) {­

eprintStackTrace();­

} catch (IOException e) {­

eprintStackTrace();­

以上就是关于excel作为java访问的数据库全部的内容,包括:excel作为java访问的数据库、用java连接SQLSERVER数据库后如何将结果导入Excel中、java中怎么把excel中的数据存储到数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10080894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存