Excel导入导出数据到SQL数据库的实例。 大侠们,我这两天在学Excel的导入导出,知道了有一些SQL语句可以实现导入导出,但是让我写个程序,我不知道JSP页面或者说是整个工程不知道该怎么写,希望谁能给我说个思路,或者写个例子,帮帮忙,谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不过可能是说用命令行方式把一个数据库表转换为excel表。楼主想要查询结果集转换为excel表,我知道有两种方式:一种是转换为csv格式(这是Excel的一种格式)。这种格式是纯文本,文本的一行对应于Excel表的一行,不同的列之间用“,”分隔。另外一种方式就是利用java操作excel的API,比如Jakarta POI,从而可以对excel文件进行读写。可参见:http://jakarta.apache.org/poi/ 另外一种方式就是利用java操作excel的API,比如Jakarta POI,从而可以对excel文件进行读写。可参见:http://jakarta.apache.org/poi/我说的就是这个方法,但是我刚刚接触,都不知道从何入手,请详细指点一下吧!拜托~ 我用的是jxl,感觉不错,你可以去看看实例http://www.1to2.us/Java-Excel-a159665.htm //建立输出表实例_workbook_out = new HSSFWorkbook();//以后关闭要用实例fileOutfileOut = new FileOutputStream(outfilename);//建立表格实例HSSFSheet sheet_out = _workbook_out.createSheet();rows 结果集中的记录数for (int r = 0; r < rows; r++) //row numbers{//建立行HSSFRow row_out = sheet_out.createRow(r);//建立该行列循环 for (short c = 0; c < cells; c++) { //建立输出单元格对象实例 HSSFCell cell_out = row_out.createCell(c); //单元格汉字编码转换 cell_out.setEncoding(HSSFCell.ENCODING_UTF_16); //设置单元格属性 cell_out.setCellType(HSSFCell.CELL_TYPE_NUMERIC); //添值(这个值就是你准备要取的结果集中的某个你要放置的值) cell_out.setCellValue(numvalue); }//列循环结束} //行循环结束//最后处理输出工作表关闭写入数据_workbook_out.write(fileOut);fileOut.close();你看看这段代码吧 注释的很详细了 有excel和sql的导入导出的例子吗? readChannel(String inputDate, String branchCode, Connection con, String toFileName, String templateName, String reportName, String errorMessage) { System.out.println("==========" + toFileName); if (sys_logger.isDebugEnabled()){ sys_logger.debug(toFileName + " begin..."); sys_logger.debug("---from " + templateName); } Object synObj; if (synFile.get(templateName) == null) { synObj = new Object(); synFile.put(templateName, synObj); } synObj = synFile.get(templateName); synchronized (synObj) { POIFSFileSystem pfs = null; HSSFWorkbook workbook = null; HSSFSheet sheet = null; HSSFRow hr = null; HSSFCell cell = null; FileOutputStream fos = null; PreparedStatement pstmt = null; PreparedStatement pstmt1 = null; ResultSet rs = null; String sheetname = null; String col = null; String row = null; String num = null; String celltype = null; int i = 0; try { File filedelete = new File(toFileName); if (filedelete.exists()) { filedelete.delete(); } //xls定义 pfs = new POIFSFileSystem(new FileInputStream(templateName)); workbook = new HSSFWorkbook(pfs); String sql = "select sheetname,colpos,rowpos,num,celltype from tbrptresult " + "where branch_code=? and reportname=? " + "order by sheetname,to_number(colpos),to_number(rowpos)"; pstmt = con.prepareStatement(sql); pstmt.setString(1, branchCode); pstmt.setString(2, reportName); rs = pstmt.executeQuery(); //sheet = copy.getSheet(Integer.parseInt("1")); while (rs.next()) { sheetname = rs.getString(1); //in fact sheetname is sheetid col = rs.getString(2); row = rs.getString(3); num = StringUtils.encode(rs.getString(4)); celltype = rs.getString(5); //不带格式,只修改数值 sheet = workbook.getSheetAt(Integer.parseInt(sheetname)); hr = sheet.getRow(Integer.parseInt(row)); cell = hr.getCell( (short) (Integer.parseInt(col))); if (num != null) { i++; //logger.debug(i + ":(" + row + ":" + col + ":" + num +":" + cell.getCellType() + ")"); if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) { cell.setCellValue( (new Double(num)).doubleValue()); } else if (cell.getCellType() == HSSFCell.CELL_TYPE_BLANK || cell.getCellType() == HSSFCell.CELL_TYPE_STRING) { cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setEncoding( (short) 1); cell.setCellValue(num); } } cell = null; hr = null; sheet = null; //LoggerUtils.recordError(ReportConstants.REPORT_SYS_LOG, "6-991" + copy.toString() ); } //去掉多余行 begin if (!PreLoader.HQ_BRANCH_CODE.equals(branchCode)){ String hassub = ""; String day = inputDate.substring(8, 10); String sql2 = "select hassubbranch from t_rpt_branch where branch_code=? " + " and status='1' "; pstmt1 = con.prepareStatement(sql2); pstmt1.setString(1, branchCode); //pstmt1.setString(2, reportName); rs = pstmt1.executeQuery(); while (rs.next()) { hassub = rs.getString(1); } if (hassub.equalsIgnoreCase("0")) { if (reportName.equalsIgnoreCase("DAILYRPT3")) { hiderow(2, 9, day, workbook); hiderow(3, 11, day, workbook); hiderow(4, 10, day, workbook); hiderow(5, 11, day, workbook); hiderow(6, 10, day, workbook); hiderow(7, 10, day, workbook); hiderow(8, 6, day, workbook); hiderow(9, 6, day, workbook); hiderow(10, 6, day, workbook); hiderow(11, 6, day, workbook); hiderow(12, 6, day, workbook); } if (reportName.equalsIgnoreCase("DAILYRPT3AG") || reportName.equalsIgnoreCase("DAILYRPT3BANC")) { hiderow(2, 11, day, workbook); hiderow(3, 6, day, workbook); } if (reportName.equalsIgnoreCase("DAILYRPT3BRK") || reportName.equalsIgnoreCase("DAILYRPT3DM") || reportName.equalsIgnoreCase("DAILYRPT3GODT")) { hiderow(2, 10, day, workbook); hiderow(3, 6, day, workbook); } } if (hassub.equalsIgnoreCase("1")) { if (reportName.equalsIgnoreCase("DAILYRPT3")) { hiderow(2, 9, day, workbook); hiderow(3, 11, day, workbook); hiderow(4, 11, day, workbook); hiderow(5, 11, day, workbook); hiderow(6, 11, day, workbook); hiderow(7, 11, day, workbook); hiderow(8, 6, day, workbook); hiderow(9, 6, day, workbook); hiderow(10, 6, day, workbook); hiderow(11, 6, day, workbook); hiderow(12, 6, day, workbook); } if (reportName.equalsIgnoreCase("DAILYRPT3AG") || reportName.equalsIgnoreCase("DAILYRPT3BANC")) { int ns = workbook.getNumberOfSheets(); for (int k = 2; k < ns; k++) { hiderow(k, 11, day, workbook); } //hiderow(2, 11, day, workbook); //hiderow(3, 6, day, workbook); } if (reportName.equalsIgnoreCase("DAILYRPT3BRK") || reportName.equalsIgnoreCase("DAILYRPT3DM") || reportName.equalsIgnoreCase("DAILYRPT3GODT")) { int ns = workbook.getNumberOfSheets(); for (int k = 2; k < ns; k++) { hiderow(k, 10, day, workbook); } //hiderow(2, 10, day, workbook); //hiderow(3, 6, day, workbook); } } } //end fos = new FileOutputStream(new File(toFileName)); workbook.write(fos); fos.flush(); System.out.println("from " + templateName); System.out.println(toFileName + " genarate over"); if (sys_logger.isDebugEnabled()){ sys_logger.debug(toFileName + " genarate over"); } } //catch (Throwable t) { catch (Exception t) { t.printStackTrace(); sys_logger.error(i + ":Exception(" + row + ":" + col + ":" + num + ":" + cell.getCellType() + ")"); sys_logger.error(t); } finally { try { if (fos != null) { fos.close(); } } catch (Exception e) { e.printStackTrace(); } workbook = null; pfs = null; //LoggerUtils.recordError(ReportConstants.REPORT_WEB_LOG, "3" + reportName); ConnectionPool.releaseResultSet(rs); ConnectionPool.releasePreparedStatement(pstmt); ConnectionPool.releasePreparedStatement(pstmt1); } } }这是我前面写的一个函数是从数据库中读记录写入EXCEL 你参考一下,用POI作的 LZ自己看看吧最好自己研究透彻 倒入的话建议把excel 转换为cvs进行倒入 用sqlserver的DTS比上面的好像都要方便吧 建议楼主用DTS,在程序用dtsrunui调用DTS包。 请问c3p0连接池怎么读Properties配置文件? 用scanner进行text input JAVA小问题 关于jtextpane & jpanel组件的应用 非常紧急,等待救命,关于JavaScript 含有void main()方法的类如何测试? 新手遇到问题,高手帮帮忙 100 分 bdk1_1 启动失败?进者有分啊 高分:一个关于日蚀Eclipse的问题!! 关于applet的麻烦 Applet问题:在applet中弹出一个新的ie! 谢谢 !请不吝赐教! 如何判断一个String是否包含在另一个String中
另外一种方式就是利用java操作excel的API,比如Jakarta POI,从而可以对excel文件进行读写。可参见:http://jakarta.apache.org/poi/
拜托~
http://www.1to2.us/Java-Excel-a159665.htm
_workbook_out = new HSSFWorkbook();
//以后关闭要用实例fileOut
fileOut = new FileOutputStream(outfilename);
//建立表格实例
HSSFSheet sheet_out = _workbook_out.createSheet();
rows 结果集中的记录数
for (int r = 0; r < rows; r++) //row numbers
{//建立行
HSSFRow row_out = sheet_out.createRow(r);
//建立该行列循环
for (short c = 0; c < cells; c++) {
//建立输出单元格对象实例
HSSFCell cell_out = row_out.createCell(c);
//单元格汉字编码转换
cell_out.setEncoding(HSSFCell.ENCODING_UTF_16);
//设置单元格属性
cell_out.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
//添值(这个值就是你准备要取的结果集中的某个你要放置的值)
cell_out.setCellValue(numvalue);
}//列循环结束} //行循环结束//最后处理输出工作表关闭写入数据
_workbook_out.write(fileOut);
fileOut.close();你看看这段代码吧 注释的很详细了
Connection con,
String toFileName, String templateName,
String reportName, String errorMessage) {
System.out.println("==========" + toFileName);
if (sys_logger.isDebugEnabled()){
sys_logger.debug(toFileName + " begin...");
sys_logger.debug("---from " + templateName);
}
Object synObj;
if (synFile.get(templateName) == null) {
synObj = new Object();
synFile.put(templateName, synObj);
} synObj = synFile.get(templateName);
synchronized (synObj) { POIFSFileSystem pfs = null;
HSSFWorkbook workbook = null;
HSSFSheet sheet = null;
HSSFRow hr = null;
HSSFCell cell = null; FileOutputStream fos = null;
PreparedStatement pstmt = null;
PreparedStatement pstmt1 = null;
ResultSet rs = null; String sheetname = null;
String col = null;
String row = null;
String num = null;
String celltype = null;
int i = 0;
try { File filedelete = new File(toFileName);
if (filedelete.exists()) {
filedelete.delete();
} //xls定义
pfs = new POIFSFileSystem(new FileInputStream(templateName));
workbook = new HSSFWorkbook(pfs); String sql =
"select sheetname,colpos,rowpos,num,celltype from tbrptresult "
+ "where branch_code=? and reportname=? "
+ "order by sheetname,to_number(colpos),to_number(rowpos)"; pstmt = con.prepareStatement(sql);
pstmt.setString(1, branchCode);
pstmt.setString(2, reportName);
rs = pstmt.executeQuery(); //sheet = copy.getSheet(Integer.parseInt("1")); while (rs.next()) { sheetname = rs.getString(1); //in fact sheetname is sheetid
col = rs.getString(2);
row = rs.getString(3);
num = StringUtils.encode(rs.getString(4));
celltype = rs.getString(5); //不带格式,只修改数值
sheet = workbook.getSheetAt(Integer.parseInt(sheetname));
hr = sheet.getRow(Integer.parseInt(row));
cell = hr.getCell( (short) (Integer.parseInt(col)));
if (num != null) {
i++;
//logger.debug(i + ":(" + row + ":" + col + ":" + num +":" + cell.getCellType() + ")"); if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
cell.setCellValue( (new Double(num)).doubleValue());
}
else if (cell.getCellType() == HSSFCell.CELL_TYPE_BLANK ||
cell.getCellType() ==
HSSFCell.CELL_TYPE_STRING) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding( (short) 1);
cell.setCellValue(num);
}
} cell = null;
hr = null;
sheet = null; //LoggerUtils.recordError(ReportConstants.REPORT_SYS_LOG, "6-991" + copy.toString() );
} //去掉多余行 begin
if (!PreLoader.HQ_BRANCH_CODE.equals(branchCode)){
String hassub = "";
String day = inputDate.substring(8, 10);
String sql2 =
"select hassubbranch from t_rpt_branch where branch_code=? " +
" and status='1' ";
pstmt1.setString(1, branchCode);
//pstmt1.setString(2, reportName);
rs = pstmt1.executeQuery();
while (rs.next()) {
hassub = rs.getString(1);
}
if (hassub.equalsIgnoreCase("0")) {
if (reportName.equalsIgnoreCase("DAILYRPT3")) {
hiderow(2, 9, day, workbook);
hiderow(3, 11, day, workbook);
hiderow(4, 10, day, workbook);
hiderow(5, 11, day, workbook);
hiderow(6, 10, day, workbook);
hiderow(7, 10, day, workbook);
hiderow(8, 6, day, workbook);
hiderow(9, 6, day, workbook);
hiderow(10, 6, day, workbook);
hiderow(11, 6, day, workbook);
hiderow(12, 6, day, workbook);
}
if (reportName.equalsIgnoreCase("DAILYRPT3AG") ||
reportName.equalsIgnoreCase("DAILYRPT3BANC")) {
hiderow(2, 11, day, workbook);
hiderow(3, 6, day, workbook);
}
if (reportName.equalsIgnoreCase("DAILYRPT3BRK") ||
reportName.equalsIgnoreCase("DAILYRPT3DM") ||
reportName.equalsIgnoreCase("DAILYRPT3GODT")) {
hiderow(2, 10, day, workbook);
hiderow(3, 6, day, workbook);
}
}
if (hassub.equalsIgnoreCase("1")) {
if (reportName.equalsIgnoreCase("DAILYRPT3")) {
hiderow(2, 9, day, workbook);
hiderow(3, 11, day, workbook);
hiderow(4, 11, day, workbook);
hiderow(5, 11, day, workbook);
hiderow(6, 11, day, workbook);
hiderow(7, 11, day, workbook);
hiderow(8, 6, day, workbook);
hiderow(9, 6, day, workbook);
hiderow(10, 6, day, workbook);
hiderow(11, 6, day, workbook);
hiderow(12, 6, day, workbook);
}
if (reportName.equalsIgnoreCase("DAILYRPT3AG") ||
reportName.equalsIgnoreCase("DAILYRPT3BANC")) {
int ns = workbook.getNumberOfSheets();
for (int k = 2; k < ns; k++) {
hiderow(k, 11, day, workbook);
}
//hiderow(2, 11, day, workbook);
//hiderow(3, 6, day, workbook);
}
if (reportName.equalsIgnoreCase("DAILYRPT3BRK") ||
reportName.equalsIgnoreCase("DAILYRPT3DM") ||
reportName.equalsIgnoreCase("DAILYRPT3GODT")) {
int ns = workbook.getNumberOfSheets();
for (int k = 2; k < ns; k++) {
hiderow(k, 10, day, workbook);
}
//hiderow(2, 10, day, workbook);
//hiderow(3, 6, day, workbook);
} }
}
//end fos = new FileOutputStream(new File(toFileName));
workbook.write(fos);
fos.flush();
System.out.println("from " + templateName);
System.out.println(toFileName + " genarate over");
if (sys_logger.isDebugEnabled()){
sys_logger.debug(toFileName + " genarate over");
}
}
//catch (Throwable t) {
catch (Exception t) {
t.printStackTrace();
sys_logger.error(i + ":Exception(" + row + ":" + col + ":" + num + ":" +
cell.getCellType() + ")");
sys_logger.error(t);
}
finally { try {
if (fos != null) {
fos.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
workbook = null;
pfs = null;
//LoggerUtils.recordError(ReportConstants.REPORT_WEB_LOG, "3" + reportName);
ConnectionPool.releaseResultSet(rs);
ConnectionPool.releasePreparedStatement(pstmt);
ConnectionPool.releasePreparedStatement(pstmt1);
}
}
}
这是我前面写的一个函数是从数据库中读记录写入EXCEL 你参考一下,用POI作的