JspsmartUpload可以对一般的文件进行上传,而jxl工具包提供良好的对MSExcel文件格式的读取性能,可以结合这两者在Web页面上通过Excel文件对数据进行批量录入。
这里提供一点思路,供大家参考。
????首先可以将文件上传到Web服务器的某个地方,可以根据需要任意选取,然后通过使用工具包对文件进行读取,最后删除该临时文件。
????我使用的是jspSmartUpload包的源代码编译后自己压缩而成的包,而Jxl则是在网上找到的,包的全名是jexcelapi_2_3_7,可以通过google进行搜索找到,如果需要可以与我联系。
???以下是整个最为简单的例子代码,可供大家参考:
index.jsp:
- <%@?page?contentType="text/html;?charset=GBK"?%>
- <HTML>
- <BODY?BGCOLOR="white">
- <H1>上载界面</H1>
- <HR>
- <FORM?METHOD="POST"?ACTION="/WebExcel/display.jsp"?ENCTYPE="multipart/form-data">
- ???<INPUT?TYPE="FILE"?NAME="FILE1"?SIZE="50"?><BR>
- ???<INPUT?TYPE="SUBMIT"?VALUE="上载">
- </FORM>
- </BODY>
- </HTML>
display.jsp
- <!--
- ??@author?杨丰
- ??@time?2003年7月16日
- ??@用于实现基本的Web页面读取Excel
- -->
- <%@?page?contentType="text/html;?charset=GBK"
- ??language="java"?import="jxl.*,com.jspsmart.upload.*"?%>
- <jsp:useBean?id="mySmartUpload"?scope="page"?class="com.jspsmart.upload.SmartUpload"?/>
- <HTML>
- <BODY?BGCOLOR="white">
- <H1>Excel文件内容显示</H1>
- <HR>
- <%
- ????int?count=0;
- ????mySmartUpload.initialize(pageContext);
- ????mySmartUpload.upload();
- ????for?(int?i=0;i<mySmartUpload.getFiles().getCount();i++){
- ????????com.jspsmart.upload.File?myFile?=?
- ?????????????????????mySmartUpload.getFiles().getFile(i);
- ????????if?(!myFile.isMissing())?{
- ????????????myFile.saveAs("/upload/"+myFile.getFileName());
- ????????}
- ????}
- ????int?ROW?=?4;
- ????int?COLUMN?=?3;
- ????ServletContext?servletContext?=?pageContext.getServletContext();
- ????java.io.File?xmlFile?=
- ????????new?java.io.File(servletContext.getRealPath("upload/Book1.xls"));
- ????Cell?cell?=?null;
- ????????try{
- ????????????Workbook?workbook?=?Workbook.getWorkbook(xmlFile);
- ????????????Sheet?sheet?=?workbook.getSheet(0);
- ????????out.println("<table?border=1>");
- ????????????for(int?j=0;j<ROW;j++){
- ????????????????out.println("<tr>");
- ????????????????for(int?i=0;i<COLUMN;i++){
- ????????????????out.println("<td>");
- ????????????????????cell?=?sheet.getCell(i,j);
- ????????????????????out.print(cell.getContents());
- ????????????????out.println("</td>");
- ????????????????}
- ????????????????out.println("</tr>");
- ????????????}
- ????????????????out.println("</table>");
- ????????????????workbook.close();
- ????????xmlFile.delete();
- ????????}catch(Exception?e){
- ????????????System.out.println(e);
- ??????????????}
- %>
- </BODY>
- </HTML>
实现这一功能的前提是Excel文件格式必须事先确定。