请教一Excel数据导入到数据库中去!

anita2222 2010-12-17 02:49:14
各位高手,小弟我想做个Excel数据导入到oracle数据库中,我用的是jxl开源包,怎么老是报Exception in thread "main" java.io.FileNotFoundException: F:\phone.xls (系统找不到指定的文件。),我知道是文件路径不对,但我不知怎么去做,先谢谢啦!



public class ExcelInfo {
public static void main(String[] args) throws Exception {
ExcelInfo in = new ExcelInfo();
in.insert("F:/phone.xls","td_shop_selectphone");
}

/**
*
* @param path
* 要解析的excel文件路径
* @param dataTable
* 要写入到数据库中的表名
* @throws BiffException
* @throws IOException
*/
public void insert(String path,String dataTable) throws BiffException, IOException {
DAO dao = DAO.getDAO(Constant.DATABASE_SHOP);
File file = new File(path);
// 创建新的Excel 工作簿
Workbook rwb = null;
rwb = Workbook.getWorkbook(file);

// 得到工作簿中的第一个表索引即为excel下的sheet1,sheet2,sheet3...
Sheet sheet = rwb.getSheets()[0];
int rsColumns = sheet.getColumns();// 列数
int rsRows = sheet.getRows();// 行数
String simNumber = "" ;//每个单元格中的数据

// DBUtils jdbc=new DBUtils();

String str="";//拼接要插入的列
for (int j = 0; j <rsColumns; j++) {
Cell cell = sheet.getCell(j, 0);
simNumber = cell.getContents();
if(j==rsColumns-1){
str += simNumber ;
}else{
str += simNumber+",";
}
}
for (int i = 1; i < rsRows; i++) {

String sql = "insert into "+dataTable+"("+str+") values(";//拼接sql
System.out.println(str);
for (int j = 0; j < rsColumns; j++) {
Cell cell = sheet.getCell(j, i);
simNumber = cell.getContents();
if(j==rsColumns-1){
sql += "'"+ simNumber+"'" ;
}else{
sql +="'"+ simNumber+"',";
}

}
sql += " )";
dao.execute(sql);
}
}

}
...全文
72 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinhualee 2010-12-17
  • 打赏
  • 举报
回复
应该是把你代码中的那部分改改
anita2222 2010-12-17
  • 打赏
  • 举报
回复
二楼的大哥,小弟技术菜,我不知道你说的是不是在工程下建个文件夹,把Excel表放进去,再取它的全路径,是不是这样理解的?
kevin_qust 2010-12-17
  • 打赏
  • 举报
回复
2楼正解
wing7742 2010-12-17
  • 打赏
  • 举报
回复
F:/phone.xls
改为
F:\\phone.xls
yqlx521 2010-12-17
  • 打赏
  • 举报
回复

private String READ_DB_KANRYO = "\\template\\db-kanryo.xls";
这种是把excel文件放在你工程下的template文件夹下的写法ReadFilePath = this.getServlet().getServletContext()
.getRealPath(READ_DB_GAIYO);这个是获取全文件路径 你试试吧

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧