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文件格式必须事先确定。