精华内容
下载资源
问答
  • 想把xlsx文件直接上传到服务器shinyserver,在根据需要读取其中表格,但是 input默认只能读取csv,然后通过write.csv写到服务器本地文件,因此我用了file.copy 方法直接拷,本机上传下载一切正常,但是上传虽然能...
  • 而如果是.xlsx的Excell,该方法就不可用了,为什么不可用,我在这就不多说了。现在直接上代码,以视说明: 前端页面<form id="queryForm" method="post">上传文件:</div&...

     

    首先,如果导入.xls的Excell,可以直接调用new ExcelRead().readExcel(file)方法,将Excell转成list;而如果是.xlsx的Excell,该方法就不可用了,为什么不可用,我在这就不多说了。现在直接上代码,以视说明:

    前端页面<form id="queryForm" method="post">上传文件:</div><input id="file" type="file" name="file"><input type="button" οnclick="doSaveExcell()" value="确   定" style="margin-top:5px;" /></form>

    说明:这里用的不是submit提交,如果要submit提交,应在form中加入enctype="multipart/form-data" action="xx/xx.do"

    function doSaveExcell(){
    var form = new FormData(document.getElementById("queryForm"));

    $.ajax({
    url:"/xx/xx.do",
    type : "POST",
    data:form,
    cache: false,
    processData:false,
                    contentType:false,
    async: false,
    success : function(data){

    }
    });
    }

    先说导入.xls的Excell:

    1.在后台接收file@RequestParam(value = "file", required = false) MultipartFile file

    2.将Excell转成list:List<ArrayList<String>> list = new ExcelRead().readExcel(file);

    再说导入.xlsx的Excell:

    1.将file文件存入服务器,并生成路径filepath

    2.将xlsx文件解析出来并转成集合

    public List<Map<String, Object>> doXlsxleading(String filepath){
    List<Map<String, Object>> resultList = new ArrayList<Map<String,Object>>();
    // 构造 XSSFWorkbook 对象,strPath 传入文件路径  
          XSSFWorkbook xwb = null;
          try {

    //这个filepath的生成路径,可以在控制层现将其文件暂时存入服务器,然后再将其删除
          xwb = new XSSFWorkbook(new FileInputStream(filepath));
          } catch (IOException e) {
          return resultList;
          }  
           // 读取第一章表格内容  
           XSSFSheet sheet = xwb.getSheetAt(0);  
           xwb.getSheetAt(1);
          // 定义 row、cell  
           XSSFRow row;  
           String cell;  
           // 循环输出表格中的内容  
           for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) {  
               row = sheet.getRow(i);  
               Map<String, Object> resultMap = new HashMap<String, Object>();
               for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) {  
                  // 通过 row.getCell(j).toString() 获取单元格内容,  
                  cell = row.getCell(j).toString(); 
                  resultMap.put("cell"+j, cell);
              }  
               resultList.add(resultMap);
           }
            //将临时生成filepath的文件删除
           File file = new File(filepath);
           if (file.exists() && file.isFile()) {
            file.delete();
        }
    return resultList;
    }

    3.调用doXlsxleading(String filepath)方法,生成list

    展开全文
  • 大神们,请问一下我上传Excel文件两种格式xls和xlsx,为什么只有xls可以上传xlsx文件就不能上传,我也做了两种格式的判断![图片说明](https://img-ask.csdn.net/upload/201706/14/1497406362_512345.png) 出错信息...
  • 为什么我使用JavaScript无法实现选择文件后把Label修改为文件名称? 我参考的https://blog.csdn.net/tanhongwei1994/article/details/85284785可是实现不了,球球大神教教我 ```html <!DOCTYPE html> <!-- ...
  • Pub.Util.AlertPostBack(this.Page, "请导入Excel文件或Word文件!"); } } catch { Pub.Util.AlertPostBack(this.Page, "导入失败!"); } } private DataTable NewTable(DataTable data) { DataTable ...
  • 请问大家 如何用ext的上传控件 :UploadDialog 上传并解析Excel内容写入数据库? UploadDialog只能上传 难道要先上传到服务器 然后服务器...为什么? 谢谢了 [b]问题补充:[/b] 我用的是这个:Ext.ux.UploadDialog
  • 问题:传xlsx文件失败,传不过去 1.问题分析 我传之前能打印出data.file 2.为什么打印的时候只有uid:xxxxxne 这个时候,我们要仔细看下我们的参数名称,headers里面的参数,会发现,需要form-data!!!的type...

    问题:传xlsx文件失败,传不过去

    • 1.问题分析
      我传之前能打印出data.file

    • 2.为什么打印的时候只有uid:xxxxxne

    • 这个时候,我们要仔细看下我们的参数名称,headers里面的参数,会发现,需要form-data!!!的type才能传过去

    • 失败情况

    • code:uid:xxxxxne
      在这里插入图片描述
      这样才是传成功的form Data 是个file:(binary)
      在这里插入图片描述

    展开全文
  • <p>1、通过前端上传一份xlsx文件,其中会有合并单元格、设置单元格背景色、字体颜色等操作 2、后端接收到xlsx后,替换其中的指定内容, 比如将所有的"他"替换"它" ...
  • Java 下载Excel打不开是什么

    千次阅读 2018-07-25 16:19:01
    场景:草草写了一个独立的文件服务,可以支持文件上传和下载操作(常规操作),操作图片的读取mei有问题,但是在下载Excel文件之后,发现提示文件损坏,无法正常打开。 排查:直接从文件服务器上将文件拷贝出来,...

    场景:草草写了一个独立的文件服务,可以支持文件的上传和下载操作(常规操作),操作图片的读取mei有问题,但是在下载Excel文件之后,发现提示文件损坏,无法正常打开。

    排查:直接从文件服务器上将文件拷贝出来,发现文件能正常打开没有问题。

    分析:下载excel在服务器上后缀名称为.xls;但下载下来为.xlsx

    观察:文件下载有问题-在代码中没有设置下载文件的contentType和Head

             ----Content-Type:       application/octet-stream  

                 这里有content-type的对应标识:https://blog.csdn.net/luman1991/article/details/53423305

                 该实体头的作用是让服务器告诉浏览器它发送的数据属于什么文件类型
             ----Content-Disposition: attachment;filename=aaa.zip 

                 当Content-Type 的类型为要下载的类型时 , 这个扩展头会告诉浏览器这个文件的名字和类型。

                Content-Disposition中指定的类型是文件的扩展名,并且弹出的下载对话框中的文件类型图片是按照文件的扩展名显示的,点保存后,文件以filename的值命名,保存类型以Content中设置的为准。
    注意:在设置Content-Disposition头字段之前,一定要设置Content-Type头字段。(这里摘自博文,自己测试无论位置前后,都能正常下载打开。)

    解决:下载文件时设置消息头Content-Type和扩展头Content-Disposition

                java在1.7之后提供了判定下载文件contentType的方法:

                可以自动检测文件类型,

                Path path = Paths.get(filePath);
                contenType = Files.probeContentType(path);
                System.out.println(contenType);
                response.setContentType(contenType);

                另外,对未知的的文件类型,可以使用

    response.setContentType("application/octet-stream;charset=utf-8");

     对Content-Disposition的设置主要根据服务器上带后缀的文件的名称,我这里需求是要跟服务器上文件类型及后缀名称保持一致,所以直接在扩展头写入写入的是全文件名称。

    response.setHeader("Content-Disposition", "attachment;fileName=" + path.getFileName());

    --over--

    展开全文
  • js-xlsx上传并解析excel文件,json导出excel vue Vue3.0 尝鲜,Object.defineProperty VS Proxy Vue 和 React 的优点分别是什么?有各路大神的回答 vuex 是否有必要通过getters获取state 干...
    展开全文
  • POI 操作 Excel

    千次阅读 2020-09-18 10:26:25
    为什么会需要用到 POI 和 EasyExcel 呢? 将用户信息导出为 Excel 表格(导出数据) 将 Excel 表中的信息录入到网站数据库(习题上传)大大减少网站录入量 开发中经常会涉及到 Excel 的处理,如导出 Excel,导入 ...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

为什么上传xlsx文件