java中把SQL数据库中的表导出到excel中.怎么实现 我用的eclipse软件做的.上面有个combo下拉控键连接数据表.下面是一个button控键来导出数据表到excel表中.怎么来使用实现button备份combo中选中的数据表? 新人.请高人指点.(具体语句最好!!)谢谢. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 前段时间正好做了,导入和导出的,你自己看吧 /**导出数据为XLS格式 * @param fos * @param bo */ public void writeExcelBo(FileOutputStream fos, java.util.Vector ve) { jxl.write.WritableWorkbook wwb; try { wwb= Workbook.createWorkbook(fos); jxl.write.WritableSheet ws= wwb.createSheet("booksheet", 10); ws.addCell(new jxl.write.Label(0, 1, "书目ID")); ws.addCell(new jxl.write.Label(1, 1, "ISBN")); ws.addCell(new jxl.write.Label(2, 1, "定价")); ws.addCell(new jxl.write.Label(3, 1, "书名")); ws.addCell(new jxl.write.Label(4, 1, "原书名")); ws.addCell(new jxl.write.Label(5, 1, "副题名")); ws.addCell(new jxl.write.Label(6, 1, "著者")); ws.addCell(new jxl.write.Label(7, 1, "译者")); ws.addCell(new jxl.write.Label(8, 1, "版次")); ws.addCell(new jxl.write.Label(9, 1, "出版地")); ws.addCell(new jxl.write.Label(10, 1, "出版社")); ws.addCell(new jxl.write.Label(11, 1, "出版日期")); ws.addCell(new jxl.write.Label(12, 1, "页数")); ws.addCell(new jxl.write.Label(13, 1, "书高")); ws.addCell(new jxl.write.Label(14, 1, "装帧")); ws.addCell(new jxl.write.Label(15, 1, "丛书名")); ws.addCell(new jxl.write.Label(16, 1, "一般性附注项")); ws.addCell(new jxl.write.Label(17, 1, "简介")); ws.addCell(new jxl.write.Label(18, 1, "主题词")); ws.addCell(new jxl.write.Label(19, 1, "中图法分类")); ws.addCell(new jxl.write.Label(20, 1, "更新日期")); ws.addCell(new jxl.write.Label(21, 1, "本数")); book=new Book[ve.size()]; for (int i= 0; i < ve.size(); i++) { book[i]= (Book)ve.get(i); ws.addCell(new jxl.write.Label(0, i + 2, "" + book[i].getBookId())); ws.addCell(new jxl.write.Label(1, i + 2, book[i].getIsbn())); ws.addCell(new jxl.write.Label(2, i + 2, "" + book[i].getPrice())); ws.addCell(new jxl.write.Label(3, i + 2, book[i].getBookTitle())); ws.addCell(new jxl.write.Label(4, i + 2, book[i].getOldFilename())); ws.addCell(new jxl.write.Label(5, i + 2, book[i].getSubTitle())); ws.addCell(new jxl.write.Label(6, i + 2, book[i].getWriter())); ws.addCell(new jxl.write.Label(7, i + 2, book[i].getTranscribe())); ws.addCell(new jxl.write.Label(8, i + 2, "" + book[i].getVersion())); ws.addCell(new jxl.write.Label(9, i + 2, book[i].getPublishCity())); ws.addCell(new jxl.write.Label(10, i + 2, book[i].getPublisher())); ws.addCell(new jxl.write.Label(11, i + 2, book[i].getPublishDate().toString())); ws.addCell(new jxl.write.Label(12, i + 2, "" + book[i].getPage())); ws.addCell(new jxl.write.Label(13, i + 2, "" + book[i].getHight())); ws.addCell(new jxl.write.Label(14, i + 2, book[i].getInstall())); ws.addCell(new jxl.write.Label(15, i + 2, book[i].getSeries())); ws.addCell(new jxl.write.Label(16, i + 2, book[i].getNotes())); ws.addCell(new jxl.write.Label(17, i + 2, book[i].getPrecisnotes())); ws.addCell(new jxl.write.Label(18, i + 2, book[i].getSubject())); ws.addCell(new jxl.write.Label(19, i + 2, book[i].getCls().replaceAll("_", ""))); ws.addCell(new jxl.write.Label(20, i + 2, book[i].getUpdatedate().toString())); ws.addCell(new jxl.write.Label(21, i + 2, "0")); } jxl.write.WritableFont wfc= new jxl.write.WritableFont( WritableFont.ARIAL, 255, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); jxl.write.WritableCellFormat wcfFC= new jxl.write.WritableCellFormat(wfc); ws.addCell(new jxl.write.Label(0, 0, "为保证您提交定单的稳定和正确,导入定单时候请勿更改此表格式(请勿更改书目ID,订购本数自行添加!)")); wwb.write(); //关闭Excel工作薄对象 wwb.close(); } catch (IOException e) {} catch (RowsExceededException e) {} catch (WriteException e) {} } //导入EXCEL if (f.getName().indexOf(".xls") > 0) { try { fis= new FileInputStream(f); BookBean bob= new BookBean(); UserBean usb= new UserBean(); jxl.Workbook rwb= Workbook.getWorkbook(fis); jxl.Sheet sh= rwb.getSheet(0); int rowCount= sh.getRows(); SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy"); book= new Book[rowCount - 1]; for (int i= 1; i < rowCount; i++) { book[i - 1]= new Book(); jxl.Cell[] ce= sh.getRow(i); book[i - 1].setIsbn(ce[0].getContents().toString()); book[i - 1].setSeries(ce[1].getContents().toString()); book[i - 1].setBookTitle(ce[2].getContents().toString()); book[i - 1].setWriter(ce[3].getContents().toString()); book[i - 1].setTranscribe(ce[4].getContents().toString()); book[i - 1].setPublisher(ce[5].getContents().toString()); book[i - 1].setPublishDate(sdf.parse(ce[6].getContents().toString(), new ParsePosition(0))); book[i-1].setVersion(Integer.parseInt(ce[7].getContents().toString())); book[i-1].setPage(Integer.parseInt(ce[8].getContents().toString())); book[i-1].setCls(ce[9].getContents().toString()); book[i-1].setPrecisnotes(ce[10].getContents().toString()); book[i-1].setInstall(ce[11].getContents().toString()); book[i-1].setPrice(Float.parseFloat(ce[12].getContents().toString())); book[i-1].setUserid(usb.getUser().getUserid()); getVector().addElement(book[i - 1]); } rwb.close(); fis.close(); } catch (FileNotFoundException e) {} catch (BiffException e) {} catch (IOException e) {} catch (NumberFormatException e) { ShowMessage("数据导入失败,请按照本软件要求的EXCEL格式导入定单"); } } try { conStudent = DriverManager.getConnection("jdbc:sqlserver://BC88C85F46D1415:1433;DatabaseName=master","sa","sa"); String sql="select name from sysobjects where xtype='U'"; Statement cmdStudent = conStudent.createStatement(); ResultSet resultSet=cmdStudent.executeQuery(sql); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); HSSFRow row = sheet.createRow((short)0); HSSFCell cell = row.createCell((short)0); ResultSetMetaData md=resultSet.getMetaData(); int nColumn=md.getColumnCount(); //写入各个字段的名称 for(int i=1;i <=nColumn;i++) { cell = row.createCell((short)(i-1)); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(md.getColumnLabel(i)); } int iRow=1; //写入各条记录,每条记录对应Excel中的一行 while(resultSet.next()) {row= sheet.createRow((short)iRow);; for(int j=1;j <=nColumn;j++) { cell = row.createCell((short)(j-1)); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellValue(resultSet.getObject(j).toString()); } iRow++; } FileOutputStream out = new FileOutputStream(file); wb.write(out); out.close(); JOptionPane.showMessageDialog(null,"导出数据成功!"); 这是我目前自己写的一个..但是导出的的是所有表的表名.其他内容什么都没.我想导出指定数据表. 二、SQL SERVER 和EXCEL的数据导入导出1、在SQL SERVER里查询Excel数据:-- ======================================================SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。SELECT * FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions-------------------------------------------------------------------------------------------------2、将Excel的数据导入SQL server :-- ======================================================SELECT * into newtableFROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]实例:SELECT * into newtableFROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions-------------------------------------------------------------------------------------------------3、将SQL SERVER中查询到的数据导成一个Excel文件-- ======================================================T-SQL代码:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'参数:S 是SQL服务器名;U是用户;P是密码说明:还可以导出文本文件等多种格式实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'在VB6中应用ADO导出EXCEL文件代码: Dim cn As New ADODB.Connectioncn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"------------------------------------------------------------------------------------------------4、在SQL SERVER里往Excel插入数据:-- ======================================================insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)T-SQL代码:INSERT INTO OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$] (bestand, produkt) VALUES (20, 'Test') ------------------------------------------------------------------------------------------------- 您好:hzl0912(血洒孤城)您的代码中ResultSetMetaData md=resultSet.getMetaData(); 这个类ResultSetMetaData , 和getMetaData()这个方法是怎么写的,请您贴上,我现在正面临这样的问题,希望您能帮我,谢谢 关于declare关键字 请问这个语句还可以怎么写? 如何全部重新建立sqlserver 2000的所有表结构 查询求解 两个表关联的问题 如何获取多列值的和作为一列返回? 一个很简单的查寻 如何用别人给我的文件产生数据库? 如何实现表间更新 SQL Server数据查询问题 T-SQL常见基础疑点问答整理(2) 安装SQL2008出错
/**导出数据为XLS格式
* @param fos
* @param bo
*/
public void writeExcelBo(FileOutputStream fos, java.util.Vector ve)
{
jxl.write.WritableWorkbook wwb;
try
{
wwb= Workbook.createWorkbook(fos);
jxl.write.WritableSheet ws= wwb.createSheet("booksheet", 10);
ws.addCell(new jxl.write.Label(0, 1, "书目ID"));
ws.addCell(new jxl.write.Label(1, 1, "ISBN"));
ws.addCell(new jxl.write.Label(2, 1, "定价"));
ws.addCell(new jxl.write.Label(3, 1, "书名"));
ws.addCell(new jxl.write.Label(4, 1, "原书名"));
ws.addCell(new jxl.write.Label(5, 1, "副题名"));
ws.addCell(new jxl.write.Label(6, 1, "著者"));
ws.addCell(new jxl.write.Label(7, 1, "译者"));
ws.addCell(new jxl.write.Label(8, 1, "版次"));
ws.addCell(new jxl.write.Label(9, 1, "出版地"));
ws.addCell(new jxl.write.Label(10, 1, "出版社"));
ws.addCell(new jxl.write.Label(11, 1, "出版日期"));
ws.addCell(new jxl.write.Label(12, 1, "页数"));
ws.addCell(new jxl.write.Label(13, 1, "书高"));
ws.addCell(new jxl.write.Label(14, 1, "装帧"));
ws.addCell(new jxl.write.Label(15, 1, "丛书名"));
ws.addCell(new jxl.write.Label(16, 1, "一般性附注项"));
ws.addCell(new jxl.write.Label(17, 1, "简介"));
ws.addCell(new jxl.write.Label(18, 1, "主题词"));
ws.addCell(new jxl.write.Label(19, 1, "中图法分类"));
ws.addCell(new jxl.write.Label(20, 1, "更新日期"));
ws.addCell(new jxl.write.Label(21, 1, "本数"));
book=new Book[ve.size()];
for (int i= 0; i < ve.size(); i++)
{
book[i]= (Book)ve.get(i);
ws.addCell(new jxl.write.Label(0, i + 2, "" + book[i].getBookId()));
ws.addCell(new jxl.write.Label(1, i + 2, book[i].getIsbn()));
ws.addCell(new jxl.write.Label(2, i + 2, "" + book[i].getPrice()));
ws.addCell(new jxl.write.Label(3, i + 2, book[i].getBookTitle()));
ws.addCell(new jxl.write.Label(4, i + 2, book[i].getOldFilename()));
ws.addCell(new jxl.write.Label(5, i + 2, book[i].getSubTitle()));
ws.addCell(new jxl.write.Label(6, i + 2, book[i].getWriter()));
ws.addCell(new jxl.write.Label(7, i + 2, book[i].getTranscribe()));
ws.addCell(new jxl.write.Label(8, i + 2, "" + book[i].getVersion()));
ws.addCell(new jxl.write.Label(9, i + 2, book[i].getPublishCity()));
ws.addCell(new jxl.write.Label(10, i + 2, book[i].getPublisher()));
ws.addCell(new jxl.write.Label(11, i + 2, book[i].getPublishDate().toString()));
ws.addCell(new jxl.write.Label(12, i + 2, "" + book[i].getPage()));
ws.addCell(new jxl.write.Label(13, i + 2, "" + book[i].getHight()));
ws.addCell(new jxl.write.Label(14, i + 2, book[i].getInstall()));
ws.addCell(new jxl.write.Label(15, i + 2, book[i].getSeries()));
ws.addCell(new jxl.write.Label(16, i + 2, book[i].getNotes()));
ws.addCell(new jxl.write.Label(17, i + 2, book[i].getPrecisnotes()));
ws.addCell(new jxl.write.Label(18, i + 2, book[i].getSubject()));
ws.addCell(new jxl.write.Label(19, i + 2, book[i].getCls().replaceAll("_", "")));
ws.addCell(new jxl.write.Label(20, i + 2, book[i].getUpdatedate().toString()));
ws.addCell(new jxl.write.Label(21, i + 2, "0"));
}
jxl.write.WritableFont wfc=
new jxl.write.WritableFont(
WritableFont.ARIAL,
255,
WritableFont.BOLD,
false,
UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC= new jxl.write.WritableCellFormat(wfc);
ws.addCell(new jxl.write.Label(0, 0, "为保证您提交定单的稳定和正确,导入定单时候请勿更改此表格式(请勿更改书目ID,订购本数自行添加!)"));
wwb.write();
//关闭Excel工作薄对象
wwb.close();
} catch (IOException e)
{} catch (RowsExceededException e)
{} catch (WriteException e)
{}
}
//导入EXCEL
if (f.getName().indexOf(".xls") > 0)
{
try
{
fis= new FileInputStream(f);
BookBean bob= new BookBean();
UserBean usb= new UserBean();
jxl.Workbook rwb= Workbook.getWorkbook(fis);
jxl.Sheet sh= rwb.getSheet(0);
int rowCount= sh.getRows();
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
book= new Book[rowCount - 1];
for (int i= 1; i < rowCount; i++)
{
book[i - 1]= new Book();
jxl.Cell[] ce= sh.getRow(i);
book[i - 1].setIsbn(ce[0].getContents().toString());
book[i - 1].setSeries(ce[1].getContents().toString());
book[i - 1].setBookTitle(ce[2].getContents().toString());
book[i - 1].setWriter(ce[3].getContents().toString());
book[i - 1].setTranscribe(ce[4].getContents().toString());
book[i - 1].setPublisher(ce[5].getContents().toString());
book[i - 1].setPublishDate(sdf.parse(ce[6].getContents().toString(), new ParsePosition(0)));
book[i-1].setVersion(Integer.parseInt(ce[7].getContents().toString()));
book[i-1].setPage(Integer.parseInt(ce[8].getContents().toString()));
book[i-1].setCls(ce[9].getContents().toString());
book[i-1].setPrecisnotes(ce[10].getContents().toString());
book[i-1].setInstall(ce[11].getContents().toString());
book[i-1].setPrice(Float.parseFloat(ce[12].getContents().toString()));
book[i-1].setUserid(usb.getUser().getUserid());
getVector().addElement(book[i - 1]);
}
rwb.close();
fis.close();
} catch (FileNotFoundException e)
{} catch (BiffException e)
{} catch (IOException e)
{} catch (NumberFormatException e)
{
ShowMessage("数据导入失败,请按照本软件要求的EXCEL格式导入定单");
}
}
{
conStudent = DriverManager.getConnection("jdbc:sqlserver://BC88C85F46D1415:1433;DatabaseName=master","sa","sa");
String sql="select name from sysobjects where xtype='U'";
Statement cmdStudent = conStudent.createStatement();
ResultSet resultSet=cmdStudent.executeQuery(sql);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFRow row = sheet.createRow((short)0);
HSSFCell cell = row.createCell((short)0);
ResultSetMetaData md=resultSet.getMetaData();
int nColumn=md.getColumnCount();
//写入各个字段的名称
for(int i=1;i <=nColumn;i++)
{
cell = row.createCell((short)(i-1));
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(md.getColumnLabel(i));
}
int iRow=1;
//写入各条记录,每条记录对应Excel中的一行
while(resultSet.next())
{row= sheet.createRow((short)iRow);;
for(int j=1;j <=nColumn;j++)
{
cell = row.createCell((short)(j-1));
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(resultSet.getObject(j).toString());
}
iRow++;
}
FileOutputStream out = new FileOutputStream(file);
wb.write(out);
out.close();
JOptionPane.showMessageDialog(null,"导出数据成功!");
这是我目前自己写的一个..但是导出的的是所有表的表名.其他内容什么都没.我想导出指定数据表.
1、在SQL SERVER里查询Excel数据:
-- ======================================================
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT *
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------------------------------------------2、将Excel的数据导入SQL server :
-- ======================================================
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
-------------------------------------------------------------------------------------------------3、将SQL SERVER中查询到的数据导成一个Excel文件
-- ======================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
在VB6中应用ADO导出EXCEL文件代码:
Dim cn As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"
------------------------------------------------------------------------------------------------4、在SQL SERVER里往Excel插入数据:
-- ======================================================
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)T-SQL代码:
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]
(bestand, produkt) VALUES (20, 'Test')
-------------------------------------------------------------------------------------------------
您的代码中ResultSetMetaData md=resultSet.getMetaData();
这个类ResultSetMetaData , 和getMetaData()这个方法是怎么写的,请您贴上,我现在正面临这样的问题,希望您能帮我,谢谢