如何用java实现从数据库导入导出电子表格.xls文件?谢 参看POI,然后自己包装一下可以实现数据库和xls之间的导入导出,但POI对word支持较差,还在开发中,而且现在很多对word实现操作的组件都是通过JNI的,偶自己写了一个对word中书签实现操作的java类,另外也可扩展使其支持特定的word中的表格, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对POI可以去Apache.org看看,那里可以下载release和source 这是大家经常问的问题:1、利用JAVA操作EXCEL文件:http://www-900.ibm.com/developerWorks/cn/java/l-javaExcel/index.shtml2、java抽取word,pdf的四种武器 http://www-900.ibm.com/developerWorks/cn/java/l-java-tips/index.shtml 这是个导出的例子,导入自然也差不多。import oracle.sql.*;import oracle.jdbc.*;import java.io.*;import java.sql.*;import javax.sql.*; import oracle.jdbc.driver.*; import oracle.jdbc.pool.*; public class FileOperate{ public static void main(String args[]){ String sDBDriver="oracle.jdbc.OracleDriver"; try{ Connection conn=null; Class.forName(sDBDriver); conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.4.143:1521:BUGBASE","tsfdba","oracle"); Statement stmt = conn.createStatement(); java.io.File outfile=null; FileOutputStream outfstrm=null; InputStream istrm=null; oracle.jdbc.OracleResultSet rset=null ; oracle.sql.BLOB myblob = null; outfile = new java.io.File("d:/test.xls"); outfstrm = new FileOutputStream(outfile); String sql = "SELECT content FROM ACCESSORY WHERE MIMENAME = 'application/vnd.ms-excel' and bugid='001'"; rset = (oracle.jdbc.OracleResultSet)(stmt.executeQuery(sql)); if (rset.next()){ myblob =((oracle.jdbc.OracleResultSet)rset).getBLOB("content"); istrm = myblob.getBinaryStream(); int strmdata; while((strmdata = istrm.read()) != -1) { outfstrm.write(strmdata); } } stmt.execute("commit"); istrm.close(); outfstrm.close(); if(stmt!=null) stmt.close(); if(rset!=null) rset.close(); if(conn!=null) conn.close(); }catch(Exception e){ System.out.println("e.getMessage()="+e.getMessage()); } }} 楼上的说的对。我也觉得用jxl比较好。比较简单。首先导入jxl。jar。然后 写个方法直接用就行了。很容易的private void PrintExcal(String result) { try { WritableWorkbook workbook = Workbook.createWorkbook(new File(result)); WritableSheet sheet = workbook.createSheet("First Sheet", 0); // 定义18号字体 WritableFont arial18font = new WritableFont(WritableFont.ARIAL, 18); WritableCellFormat arial18format = new WritableCellFormat(arial18font); //定义14号字体 WritableFont arial14font = new WritableFont(WritableFont.ARIAL, 14); WritableCellFormat arial14format = new WritableCellFormat(arial14font); jxl.write.Label label = new jxl.write.Label(0, 0, "月报", arial18format); try { sheet.addCell(label); label = new jxl.write.Label(0, 2, InputYear.getText() + "年" + InputMonth.getText() + "月", arial14format); sheet.addCell(label); label = new jxl.write.Label(3, 2, "填表单位:" + DepName.getText(), arial14format); http://www.zdnet.com.cn/developer/code/story/0,2000081534,39108409,00.htm这个地址能帮你 中文带实例 三道小题 看下这个组合算法,java里写算法真不容易 java里有没有让出处理器的语句 试用Socket写QQ程序,但出现阻塞问题,希望高手指教。 StreamTokenizer不让读取键盘输入 :-( 请高手指点,谢谢!!! 如下语句为何出错? 新手求大神帮助 有关Java Swing的图形界面编程的问题,高手请进! 急!!!!开发Corba中遇到的问题 如何清空jtable? 谢谢 安装rose 2003 时,出现DOS窗口,一闪而过,无法安装!!!!
1、利用JAVA操作EXCEL文件:
http://www-900.ibm.com/developerWorks/cn/java/l-javaExcel/index.shtml2、java抽取word,pdf的四种武器
http://www-900.ibm.com/developerWorks/cn/java/l-java-tips/index.shtml
import oracle.sql.*;
import oracle.jdbc.*;
import java.io.*;
import java.sql.*;
import javax.sql.*;
import oracle.jdbc.driver.*;
import oracle.jdbc.pool.*; public class FileOperate{
public static void main(String args[]){
String sDBDriver="oracle.jdbc.OracleDriver";
try{
Connection conn=null;
Class.forName(sDBDriver);
conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.4.143:1521:BUGBASE","tsfdba","oracle");
Statement stmt = conn.createStatement();
java.io.File outfile=null;
FileOutputStream outfstrm=null;
InputStream istrm=null;
oracle.jdbc.OracleResultSet rset=null ;
oracle.sql.BLOB myblob = null; outfile = new java.io.File("d:/test.xls");
outfstrm = new FileOutputStream(outfile);
String sql = "SELECT content FROM ACCESSORY WHERE MIMENAME = 'application/vnd.ms-excel' and bugid='001'";
rset = (oracle.jdbc.OracleResultSet)(stmt.executeQuery(sql)); if (rset.next()){
myblob =((oracle.jdbc.OracleResultSet)rset).getBLOB("content");
istrm = myblob.getBinaryStream();
int strmdata;
while((strmdata = istrm.read()) != -1) {
outfstrm.write(strmdata);
}
}
stmt.execute("commit");
istrm.close();
outfstrm.close();
if(stmt!=null)
stmt.close();
if(rset!=null)
rset.close();
if(conn!=null)
conn.close();
}catch(Exception e){
System.out.println("e.getMessage()="+e.getMessage());
}
}
}
首先导入jxl。jar。
然后 写个方法直接用就行了。很容易的
private void PrintExcal(String result) {
try {
WritableWorkbook workbook = Workbook.createWorkbook(new File(result));
WritableSheet sheet = workbook.createSheet("First Sheet", 0);
// 定义18号字体
WritableFont arial18font = new WritableFont(WritableFont.ARIAL, 18);
WritableCellFormat arial18format = new WritableCellFormat(arial18font);
//定义14号字体
WritableFont arial14font = new WritableFont(WritableFont.ARIAL, 14);
WritableCellFormat arial14format = new WritableCellFormat(arial14font); jxl.write.Label label = new jxl.write.Label(0, 0, "月报",
arial18format);
try {
sheet.addCell(label);
label = new jxl.write.Label(0, 2,
InputYear.getText() + "年" +
InputMonth.getText() + "月",
arial14format);
sheet.addCell(label);
label = new jxl.write.Label(3, 2, "填表单位:" + DepName.getText(),
arial14format);
这个地址能帮你 中文带实例