微信小程序——利用java后台解析Excel文件的数据

后台为java,ssm框架
1、在SpringMvc.xml文件中增加Spring文件上传的解析器

   <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10485760" />
        <property name="resolveLazily" value="true" />
        <property name="defaultEncoding" value="UTF-8" />
    </bean>

2、添加依赖包

  <!-- 文件传输  -->
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.3</version>
    </dependency>
    <!-- jxl -->
    <!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
    <dependency>
      <groupId>net.sourceforge.jexcelapi</groupId>
      <artifactId>jxl</artifactId>
      <version>2.6.12</version>
    </dependency>

3、微信小程序前端将Excel传到后台解析
wxml文件

<view class="button-sp-area">
<button formType="button" class="weui-btn weui-btn_plain-default" bindtap='getfile'>从本地选表格</button>
</view>

js文件

Page({
getfile: function() {
  //从本地挑选文件
wx.chooseMessageFile({
  count:1,
  type: 'file',
  success(res) {
    var path = res.tempFiles[0].path;//文件资源地址
    console.log(res)
    wx.showModal({
      title: '提示',
      content: '确认您的选择:' + res.tempFiles[0].name,
      success(res) {
        if (res.confirm) {
        console.log('用户点击确定')
          //将文件传给开发者服务器
          wx.uploadFile({
           
            header: { "Content-Type": "multipart/form-data" },//类型
            filePath: path,//文件路径
            name: 'myfile',//文件名
            url: 'http://localhost:8080/ssm/wechat/getExcel',//后台接口
            success(res) {
              console.log('传输成功')
            }
          })
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    
    })
  }
})
  

},

})
  

后台Java

 @RequestMapping("getExcel")
    @ResponseBody
    //这里value值与form中的input上传中的name相对应
    public void getExcel(HttpServletRequest request, HttpServletResponse response)
            throws UnsupportedEncodingException {
        response.setContentType("text/html;charset=utf-8");
        /*设置响应头允许ajax跨域访问*/
        response.setHeader("Access-Control-Allow-Origin", "*");
        /* 星号表示所有的异域请求都可以接受, */
        response.setHeader("Access-Control-Allow-Methods", "GET,POST");
        MultipartHttpServletRequest req = (MultipartHttpServletRequest) request;
        MultipartFile file=req.getFile("myfile");           //与微信小程序的name一致(获取文件)
        System.out.println("后台输出:"+file.getOriginalFilename());//打印出文件名
        Workbook rwb;
        try {
            rwb = Workbook.getWorkbook(file.getInputStream());//将MultipartFile类型转成字节流,强转成(File)会报错
            Sheet rs=rwb.getSheet(0);
            int clos=rs.getColumns();//得到所有的列
            int rows=rs.getRows();//得到所有的行

            System.out.println(clos+" rows:"+rows);

            for (int i = 0; i < rows; i++) {
                for (int j = 0; j < clos; j++) {
                    //第一个是列数,第二个是行数
                    //默认最左边编号也算一列 所以这里得j++
                    System.out.print(rs.getCell(j, i).getContents()+"\t");
                }
                System.out.println();
            }
        } catch (BiffException | IOException e) {
            e.printStackTrace();
        }
    }

4、结果
微信界面:
在这里插入图片描述
在这里插入图片描述
后台输出
在这里插入图片描述
excel文件
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值