通过数字查询?是在结果集 通过列的顺序查询不是 可以用数字指定列 也可以用那列的名进行查询 下面这个例子
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中的数据存储到数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)