admin 发表于 2014-4-10 13:02

如何使用commons-io.jar上传excel并读取内容

页面代码:
<form name="form2" method="post" enctype="multipart/form-data" action="baseInfoAction_upload.action">
            文件:<input type="file" name="file">
         <input type="submit" value="上传" />   
   </form>
Action代码:
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
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.poi.ss.usermodel.Cell;

import com.acts.web.common.action.BaseAction;
import com.acts.web.util.Constants;

/**
*@Class Name: BaseInfoAction
*@Author: zhangZhiPeng
*@Date: 2014-1-7
*@Modifications:
*@Modifier Name; Date; The Reason for Modifying
*
*/
@SuppressWarnings("serial")
public class BaseInfoAction extends BaseAction{
   
        private File file; //上传的文件
        private String fileFileName; //文件名称
        private String fileContentType; //文件类型
    /**
   * 上传文件并读取 数据保存到数据库
   * @return
   */
    @SuppressWarnings("deprecation")
        public String upload(){
           String realpath = this.getRequest().getRealPath("/file");
         if (file != null) {
             File savefile = new File(new File(realpath), fileFileName);
             if (!savefile.getParentFile().exists())
               savefile.getParentFile().mkdirs();
             try {
                                FileUtils.copyFile(file, savefile);
                               BufferedInputStream in = new BufferedInputStream(new FileInputStream(realpath+Constants.SF_FILE_SEPARATOR+fileFileName));
                         POIFSFileSystem fs = new POIFSFileSystem(in);
                         HSSFWorkbook wb = new HSSFWorkbook(fs);
                         HSSFSheet sheet = wb.getSheetAt(0);
                         //获取到Excel文件中的所有行数
               int rows = sheet.getPhysicalNumberOfRows();
               //遍历行
               for (int i = 0; i < rows; i++) {
                     // 读取左上端单元格
               HSSFRow row = sheet.getRow(i);
                     // 行不为空
               if (row != null) {
                           //获取到Excel文件中的所有的列
                   int cells = row.getPhysicalNumberOfCells();
                           //遍历列
                           for (int j = 0; j < cells; j++) {
                                 //获取到列的值
                                 HSSFCell cell = row.getCell(j);
                                 if (cell != null) {
                                         //设置单元格式
                                         cell.setCellType(Cell.CELL_TYPE_STRING);
                                         //测试输出
                                         System.out.println(cell.getStringCellValue());
                           }      
                     }
               }
                       }
         } catch (IOException e) {
                                e.printStackTrace();
                        }
         }
         return "success";
    }
        public File getFile() {
                return file;
        }
        public void setFile(File file) {
                this.file = file;
        }
        public String getFileFileName() {
                return fileFileName;
        }
        public void setFileFileName(String fileFileName) {
                this.fileFileName = fileFileName;
        }
        public String getFileContentType() {
                return fileContentType;
        }
        public void setFileContentType(String fileContentType) {
                this.fileContentType = fileContentType;
        }
}
struts.xml 配置文件:
<constant name="struts.multipart.maxSize" value="10701096"/><!-- 上传文件最大值 -->
读取excel文件格式:




admin 发表于 2014-4-10 13:04

所有jar包 见 import 自行下载 不再提供:lol

javaWeb12 发表于 2014-4-12 15:24

谢谢分享                           

天上人间 发表于 2014-5-11 17:35

谢谢分享的

天上人间 发表于 2014-5-11 17:36

这个都能行吗?

admin 发表于 2014-5-12 10:24

天上人间 发表于 2014-5-11 09:36
这个都能行吗?

亲测 可以

昕动2014 发表于 2014-5-13 16:21

POI包是和Excel进行交互比较好的选择~

admin 发表于 2014-5-13 16:23

昕动2014 发表于 2014-5-13 08:21
POI包是和Excel进行交互比较好的选择~

就是一个小的demo{:2_27:}

杨晓红 发表于 2014-12-25 08:28

同意
POI包是和Excel进行交互比较好的选择~

myou525 发表于 2016-11-2 15:44

看着不错,下载测试一把
页: [1]
查看完整版本: 如何使用commons-io.jar上传excel并读取内容