jsp读取客户端excel文件并在页面上显示数据 jsp读取客户端excel文件并在页面上显示数据,这个要怎么弄呢?我是用SQL Server数据库. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【dber1】截止到2008-07-01 08:53:50的历史汇总数据(不包括此帖):发帖数:6 发帖分:240 结贴数:6 结贴分:240 未结数:0 未结分:0 结贴率:100.00% 结分率:100.00% 敬礼! 我是这样做的,先把文件上传保存到服务器,然后读取,用完后把文件删除。代码如下使用前记得先设置jdbc-odbc数据源。 Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Excel Driver (*.xls)};DBQ=c:\book.xls;"); stmt = conn.createStatement(); rs = stmt.executeQuery("select * from [Sheet1$]"); while (rs.next()) { out.print(rs.getString(1)); out.print(rs.getString(2)); out.print(rs.getString(3)); out.print(rs.getString(4)); } rs.close(); stmt.close(); }catch (SQLException e) { e.printStackTrace(); } 不知道你是否用过“jxl”这样的组件,它是专门用来操作Excel文件的;你可以参照里面的方法;当然jxl的操作是比较全面的,有很多东西有可能你用不到,那么你可以封装一个属于自己的简单应用操作类;我有一些代码,你可以参考:import java.io.File;import java.io.IOException;import org.apache.log4j.Logger;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;/** * @author creator:lifw */public class ExcelManage{ private static Logger log = Logger.getLogger(ExcelManage.class); private Workbook workBook; private Sheet sheet; private int rows; private int columns; public ExcelManage(String strFilePath) throws BiffException, IOException { try { workBook = Workbook.getWorkbook(new File(strFilePath)); sheet = null; rows = 0; columns = 0; return; } catch (Exception e) { log.debug(e.toString()); return; } } public boolean selSheet(String strSheetName) { try { if (workBook != null) { sheet = workBook.getSheet(strSheetName); if(sheet != null) { rows = sheet.getRows(); columns = sheet.getColumns(); } else { return false; } return true; } else { return false; } } catch (Exception e) { log.debug(e.toString()); return false; } } public String getOneCell(int y, int x) { try { String strOneCell = null; if (y < columns && x < rows) { if (sheet != null) { strOneCell = sheet.getCell(y, x).getContents().trim(); } else { // TODO 此处没有做任何处理 } } return strOneCell; } catch (Exception e) { log.debug(e.toString()); return null; } } public int getCurRows() { return rows; } public int getCurColumns() { return columns; } public void close() { try { if (workBook != null) { workBook.close(); } } catch (Exception e) { log.debug(e.toString()); return; } return; }} jxl的操作原理是将整个Excel文件放入内存当中,然后进行解析;所以如果你的文件太大,而你又有足够的时间和经历,那么可以尝试着修改一下jxl的源码; 我一直用POI 很简单 页很好用 确实跟数据库没没什么关系呀 hibernate多对多查询 如何在页面中嵌入doc文档?能编辑最好。。。 struts 网址如何验证? 过滤器的经验收集? 高手帮帮,急,谢了, 谁有曾做作过在线考试系统,我想看其中的试题库管理.里面功能如何实现,急,高手们急救. 两个不同的Java,请高手指教! 求助!response.encodeURL()中参数如何上传? jsp中如何在今天的日期基础上,加上一个月,在线等待!! 模态窗口如何实现下载功能 有个简单的概念一直没有搞懂 JSP打印问题,请高手帮下忙!
楼主【dber1】截止到2008-07-01 08:53:50的历史汇总数据(不包括此帖):
发帖数:6 发帖分:240
结贴数:6 结贴分:240
未结数:0 未结分:0
结贴率:100.00% 结分率:100.00%
敬礼!
我是这样做的,先把文件上传保存到服务器,然后读取,用完后把文件删除。代码如下
使用前记得先设置jdbc-odbc数据源。
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Excel Driver (*.xls)};DBQ=c:\book.xls;");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from [Sheet1$]");
while (rs.next()) {
out.print(rs.getString(1));
out.print(rs.getString(2));
out.print(rs.getString(3));
out.print(rs.getString(4));
}
rs.close();
stmt.close();
}catch (SQLException e) {
e.printStackTrace();
}
你可以参照里面的方法;当然jxl的操作是比较全面的,有很多东西有可能你用不到,那么你可以封装一个属于自己的简单应用操作类;
我有一些代码,你可以参考:import java.io.File;
import java.io.IOException;import org.apache.log4j.Logger;import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;/**
* @author creator:lifw
*/
public class ExcelManage
{
private static Logger log = Logger.getLogger(ExcelManage.class);
private Workbook workBook; private Sheet sheet; private int rows; private int columns; public ExcelManage(String strFilePath) throws BiffException, IOException
{ try
{
workBook = Workbook.getWorkbook(new File(strFilePath));
sheet = null;
rows = 0;
columns = 0;
return;
}
catch (Exception e)
{
log.debug(e.toString());
return;
}
} public boolean selSheet(String strSheetName)
{
try
{
if (workBook != null)
{
sheet = workBook.getSheet(strSheetName);
if(sheet != null)
{
rows = sheet.getRows();
columns = sheet.getColumns();
}
else
{
return false;
}
return true;
}
else
{
return false;
}
}
catch (Exception e)
{
log.debug(e.toString());
return false;
}
} public String getOneCell(int y, int x)
{
try
{
String strOneCell = null;
if (y < columns && x < rows)
{
if (sheet != null)
{
strOneCell = sheet.getCell(y, x).getContents().trim();
}
else
{
// TODO 此处没有做任何处理
}
}
return strOneCell;
}
catch (Exception e)
{
log.debug(e.toString());
return null;
}
} public int getCurRows()
{
return rows;
} public int getCurColumns()
{
return columns;
} public void close()
{
try
{
if (workBook != null)
{
workBook.close();
}
}
catch (Exception e)
{
log.debug(e.toString());
return;
}
return;
}
}
所以如果你的文件太大,而你又有足够的时间和经历,那么可以尝试着修改一下jxl的源码;