描述:
前台上传EXCEL,利用STRUTS得到流,与POI结合,解析。(暂没有与到数据库及服务器上)
下面是代码:
test.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<form action="importexcel.do?method=ImportExcel" method="post"
enctype="multipart/form-data">
<input type="file" name="formFile" id="formFile" value="浏览">
<br>
<input type="submit" value="提交">
</form>
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="importForm"
type="com.instance.model.ImportExcelForm">
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/importexcel" parameter="method" scope="request" name="importForm"
type="com.instance.poi.ImportExcelServlet">
<forward name="list" contextRelative="true"
path="index.jsp">
</forward>
</action>
</action-mappings>
<message-resources parameter="ApplicationResources" />
</struts-config>
FORM:
package com.instance.model;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class ImportExcelForm extends ActionForm {
private FormFile formFile ;
public FormFile getFormFile() {
return formFile;
}
public void setFormFile(FormFile formFile) {
this.formFile = formFile;
}
}
action:
package com.instance.poi;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.DecimalFormat;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;
import com.instance.model.ImportExcelForm;
public class ImportExcelServlet extends DispatchAction {
public ActionForward ImportExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
try {
ImportExcelForm excelForm = (ImportExcelForm) form;
FormFile formfile = excelForm.getFormFile();
InputStream inputStream = formfile.getInputStream();
POIFSFileSystem fs = new POIFSFileSystem(inputStream);
HSSFWorkbook workbook = new HSSFWorkbook(fs);
HSSFSheet sheet = workbook.getSheetAt(0);
int rowNum = sheet.getLastRowNum();// 行
HSSFRow row;
HSSFCell cell;
String value = "";
for (int i = 0; i <= rowNum; i++) {
row = sheet.getRow(i);
int cellNum = row.getLastCellNum();// 列
for (int j = 0; j < cellNum; j++) {
cell = row.getCell((short) j);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
int cellType = cell.getCellType();
if (cellType == cell.CELL_TYPE_NUMERIC) {
DecimalFormat format = new DecimalFormat("#");
value = format.format(cell.getNumericCellValue());
} else {
value = cell.getStringCellValue();
}
System.out.print(value + " ");
}
System.out.println();
}
} catch (FileNotFoundException e) {
System.out.println("文件不存在....");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return mapping.findForward("list");
}
}