中易网

你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上?

答案:3  悬赏:0  
解决时间 2021-02-17 11:39
java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上?求代码
最佳答案
Resource resource = new ClassPathResource("/applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
SessionFactory sessionFactory = (SessionFactory) factory
.getBean("sessionFactory");
Session session = sessionFactory.openSession();

File excelfile = new File(ServletActionContext.getRequest()
.getRealPath("/upload")
+ "/" + filepath);
Workbook book = null;
int rownum;
String mname = null;

try {
book = Workbook.getWorkbook(excelfile);
Sheet sheet = book.getSheet(0);// 工作簿是从0开始的
for (rownum = 1; rownum < sheet.getRows(); rownum++) {
mname = sheet.getCell(0, rownum).getContents().trim();
String sql = "insert into media values (seq_media.nextval,?,?,?,?,?,?)";
Query query = session.createSQLQuery(sql);

query.setString(0, mname);
query.executeUpdate();
session.beginTransaction().commit();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
book.close();
}

这个是我的代码 希望帮到你 采纳我 谢谢
全部回答
主要用poi.jar 包。包含两个jar就可以了:poi-3.16.jar、poi-ooxml-3.16.jar 主要方法分三步: public list readexcel(string filepath, int uncaserow, int uncaseline) throws exception {    sheet sheet = null;     fileinputstream instream = null; try { instream = new fileinputstream(new file(filepath)); workbook workbook = workbookfactory.create(instream); sheet = workbook.getsheetat(0); } catch (exception e) { e.printstacktrace(); throw new exception(); } finally { try { if (instream != null) { instream.close(); } } catch (ioexception e) { e.printstacktrace(); } } list list = init(sheet, uncaserow, uncaseline);// 需要排除行数 return list; } // 初始化表格中的每一行,并得到每一个单元格的值 private list init(sheet sheet, int uncaserow, int uncaseline) { int rownum = sheet.getlastrownum() + 1; // 从零开始 list result = new arraylist(); string[] rowarr = null; row row = null; cell cell = null; int rowlength = 0; int rowindex = 0; string rowstr = null; for (int i = uncaserow; i < rownum; i++) { row = sheet.getrow(i); // 每有新的一行,创建一个新的linkedlist对象 rowlength = row.getlastcellnum(); rowindex = 0; rowarr = new string[linecount]; for (int j = uncaseline; j < rowlength; j++) { cell = row.getcell(j); // 获取单元格的值 rowstr = getcellvalue(cell); // 将得到的值放入链表中 rowarr[rowindex++] = rowstr; } result.add(rowarr); } return result; } // 获取单元格的值 @suppresswarnings("deprecation") private string getcellvalue(cell cell) { string cellvalue = ""; dataformatter formatter = new dataformatter(); if (cell != null) { // 判断单元格数据的类型,不同类型调用不同的方法 switch (cell.getcelltype()) { // 数值类型 case cell.cell_type_numeric: // 进一步判断 ,单元格格式是日期格式 if (dateutil.iscelldateformatted(cell)) { cellvalue = formatter.formatcellvalue(cell); } else { // 数值 double value = cell.getnumericcellvalue(); int intvalue = (int) value; cellvalue = value - intvalue == 0 ? string.valueof(intvalue) : string.valueof(value); } break; case cell.cell_type_string: cellvalue = cell.getstringcellvalue(); break; case cell.cell_type_boolean: cellvalue = string.valueof(cell.getbooleancellvalue()); break; // 判断单元格是公式格式,需要做一种特殊处理来得到相应的值 case cell.cell_type_formula: { try { cellvalue = string.valueof(cell.getnumericcellvalue()); } catch (illegalstateexception e) { cellvalue = string.valueof(cell.getrichstringcellvalue()); } } break; case cell.cell_type_blank: cellvalue = ""; break; case cell.cell_type_error: cellvalue = ""; break; default: cellvalue = cell.tostring().trim(); break; } } return cellvalue.trim(); }解析成对象以后,不论是插入数据库,还是jsp,都是一样的。 插入数据库:hibernate、mybatis 在jsp显示:对象封装进list,在页面显示list。
代码就不上嘞。。太多。。。而且这东西痛过一次就好嘞。。。 给你个思路。。。首先分解问题 1.java后台要读取excel,就需要用到 上传功能 怎么传搜度娘 2.java读取excel 我用的是jxl这个jar 怎么用搜度娘 3.插入数据库 insert就好 考虑性能和效率 建议用批量 4.显示在jsp select就好 关键的代码 网上都有 复制改就好 但是规则一定要自己想好
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
耳聋开车多次出车祸,可沒收驾驶证
有谁请司机吗?本人b2驾驶证7年了,有驾驶经
明确自己的性格优势对于选择就业方向有什么指
言必时有谋虑,翻译过来是什么意思?
湖北省造光绪元宝当十价格
三国演义看电视剧容易理解还是动画片
iphone4s短信铃声抽风.来短信时第一个音节响
可食用的野生百合是什么样子
待了一会儿,父亲才回答:“不要就烧掉。你小
股指期货模拟软件在那里下载
从天津市区 何庄子(十八局附近)到塘沽紫云
水温高对生化污泥有影响吗?二级沉淀出现泥翻
哪种卸妆油比较温和
淘气住5楼笑笑住9楼放学后他们以同样的速度回
逆战语音设置是黑的怎么办
推荐资讯
沉香橼地址在哪,我要去那里办事
蛇口外贸第一街地址在什么地方,想过去办事
我老婆让我问问韩国欧惠和赫拉护肤品那个好用
新浪企业邮箱,腾讯企业邮箱,怎么设置使用自
今天去提车发现里程表有6km,正常吗
<select>下拉列表
人的骨骼有什么作用
电视三级能效和一级能效耗电差多少
土木工程毕业设计 难吗 建筑结构专业的
上海哪里有修拉杆箱的地方?轮子坏了
程序员的表白代码
说出祖国多么广大的理由
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?