我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 运维优化 > 如何使用commons-io.jar上传excel并读取内容
总共48087条微博

动态微博

查看: 4048|回复: 9

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

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2014-04-10 13:02:28 |只看该作者 |正序浏览
    页面代码:
    1. <form name="form2" method="post" enctype="multipart/form-data" action="baseInfoAction_upload.action">
    2.             文件:<input type="file" name="file">
    3.          <input type="submit" value="上传" />   
    4.    </form>
    复制代码

    Action代码:
    1. import java.io.BufferedInputStream;
    2. import java.io.File;
    3. import java.io.FileInputStream;
    4. import java.io.IOException;

    5. import org.apache.commons.io.FileUtils;
    6. import org.apache.poi.hssf.usermodel.HSSFCell;
    7. import org.apache.poi.hssf.usermodel.HSSFRow;
    8. import org.apache.poi.hssf.usermodel.HSSFSheet;
    9. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    10. import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    11. import org.apache.poi.ss.usermodel.Cell;

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

    14. /**
    15. *@Class Name: BaseInfoAction
    16. *@Author: zhangZhiPeng
    17. *@Date: 2014-1-7
    18. *@Modifications:
    19. *@Modifier Name; Date; The Reason for Modifying
    20. *
    21. */
    22. @SuppressWarnings("serial")
    23. public class BaseInfoAction extends BaseAction{
    24.    
    25.         private File file; //上传的文件
    26.         private String fileFileName; //文件名称
    27.         private String fileContentType; //文件类型
    28.     /**
    29.      * 上传文件  并读取 数据保存到数据库
    30.      * @return
    31.      */
    32.     @SuppressWarnings("deprecation")
    33.         public String upload(){
    34.              String realpath = this.getRequest().getRealPath("/file");
    35.          if (file != null) {
    36.              File savefile = new File(new File(realpath), fileFileName);
    37.              if (!savefile.getParentFile().exists())
    38.                  savefile.getParentFile().mkdirs();
    39.              try {
    40.                                 FileUtils.copyFile(file, savefile);
    41.                                  BufferedInputStream in = new BufferedInputStream(new FileInputStream(realpath+Constants.SF_FILE_SEPARATOR+fileFileName));
    42.                          POIFSFileSystem fs = new POIFSFileSystem(in);
    43.                          HSSFWorkbook wb = new HSSFWorkbook(fs);
    44.                          HSSFSheet sheet = wb.getSheetAt(0);
    45.                          //获取到Excel文件中的所有行数  
    46.                  int rows = sheet.getPhysicalNumberOfRows();
    47.                  //遍历行  
    48.                  for (int i = 0; i < rows; i++) {  
    49.                        // 读取左上端单元格  
    50.                  HSSFRow row = sheet.getRow(i);  
    51.                        // 行不为空  
    52.                  if (row != null) {  
    53.                              //获取到Excel文件中的所有的列  
    54.                    int cells = row.getPhysicalNumberOfCells();  
    55.                              //遍历列  
    56.                              for (int j = 0; j < cells; j++) {  
    57.                                    //获取到列的值  
    58.                                    HSSFCell cell = row.getCell(j);  
    59.                                    if (cell != null) {
    60.                                            //设置单元格式
    61.                                            cell.setCellType(Cell.CELL_TYPE_STRING);
    62.                                            //测试输出
    63.                                            System.out.println(cell.getStringCellValue());
    64.                              }        
    65.                        }  
    66.                  }
    67.                          }
    68.            } catch (IOException e) {
    69.                                 e.printStackTrace();
    70.                         }
    71.          }
    72.          return "success";
    73.     }
    74.         public File getFile() {
    75.                 return file;
    76.         }
    77.         public void setFile(File file) {
    78.                 this.file = file;
    79.         }
    80.         public String getFileFileName() {
    81.                 return fileFileName;
    82.         }
    83.         public void setFileFileName(String fileFileName) {
    84.                 this.fileFileName = fileFileName;
    85.         }
    86.         public String getFileContentType() {
    87.                 return fileContentType;
    88.         }
    89.         public void setFileContentType(String fileContentType) {
    90.                 this.fileContentType = fileContentType;
    91.         }
    92. }
    复制代码

    struts.xml 配置文件:
    1. <constant name="struts.multipart.maxSize" value="10701096"/><!-- 上传文件最大值 -->
    复制代码

    读取excel文件格式:





    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    本帖被以下淘专辑推荐:

    33

    主题

    1

    听众

    409

    金钱

    四袋长老

    该用户从未签到

    10#
    发表于 2016-11-02 15:44:42 |只看该作者
    看着不错,下载测试一把
    回复

    使用道具 举报

    2

    主题

    0

    听众

    109

    金钱

    三袋弟子

    该用户从未签到

    9#
    发表于 2014-12-25 08:28:28 |只看该作者
    同意
    POI包是和Excel进行交互比较好的选择~

    点评

    admin  哈哈  发表于 2014-12-25 09:33 回复
    回复

    使用道具 举报

    admin    

    1244

    主题

    544

    听众

    1万

    金钱

    管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    8#
    发表于 2014-05-13 16:23:39 |只看该作者
    昕动2014 发表于 2014-5-13 08:21
    POI包是和Excel进行交互比较好的选择~

    就是一个小的demo
    回复

    使用道具 举报

    3

    主题

    4

    听众

    133

    金钱

    三袋弟子

    该用户从未签到

    80后 推广达人

    7#
    发表于 2014-05-13 16:21:26 |只看该作者
    POI包是和Excel进行交互比较好的选择~
    回复

    使用道具 举报

    admin    

    1244

    主题

    544

    听众

    1万

    金钱

    管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    6#
    发表于 2014-05-12 10:24:54 |只看该作者

    亲测 可以
    回复

    使用道具 举报

    0

    主题

    1

    听众

    28

    金钱

    一袋弟子

    该用户从未签到

    5#
    发表于 2014-05-11 17:36:19 |只看该作者
    这个都能行吗?
    回复

    使用道具 举报

    0

    主题

    1

    听众

    28

    金钱

    一袋弟子

    该用户从未签到

    地板
    发表于 2014-05-11 17:35:45 |只看该作者
    谢谢分享的
    回复

    使用道具 举报

    12

    主题

    7

    听众

    684

    金钱

    四袋长老

    该用户从未签到

    活跃会员

    板凳
    发表于 2014-04-12 15:24:02 |只看该作者
    谢谢分享                           
    回复

    使用道具 举报

    admin    

    1244

    主题

    544

    听众

    1万

    金钱

    管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    沙发
    发表于 2014-04-10 13:04:50 |只看该作者
    所有jar包 见 import 自行下载 不再提供
    回复

    使用道具 举报

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表