Day76 Java框架 SSH案例_ERP(十)_PIO框架应用_订单导入_导出_HSSF读写Excel表格档案

供应商或客户数据导出

一.需求分析

  1. 点击导出按钮,将供应商或客户的信息导出为excel文档
  2. 下载到本地,打开导出的excel:

二.POI简介

  1. Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。
  2. 用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)
  3. 结构:
    HSSF  - 提供读写Microsoft Excel XLS格式档案的功能。

    XSSF  - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
    HWPF  - 提供读写Microsoft Word DOC格式档案的功能。
    HSLF  - 提供读写Microsoft PowerPoint格式档案的功能。
    HDGF  - 提供读Microsoft Visio格式档案的功能。
    HPBF  - 提供读Microsoft Publisher格式档案的功能。
    HSMF  - 提供读Microsoft Outlook格式档案的功能。

三.入门Demo

  1. 创建工程并引入POI依赖
  2. 向单元格写值

    -注:行和列的索引都是从0开始的,即0行表示实际上的第1行,0列表示第一列(A列)
  3. 设置列宽度

四.后端代码编写

  1. 添加POI依赖
    .在父工程的pom.xml中添加POI的依赖
  2. 业务逻辑层实现
    在ISupplierBiz中添加方法:

    在SupplierBiz中添加方法的实现:

  3. Action层实现
    修改SupplierAction,添加export方法:

五.页面代码

  1. 引入download.js文件
  2. 添加导出按钮
    在crud.js中的grid的工具栏中添加按钮,代码如下

采购销售订单导出

一.需求分析

二.POI样式设置

  1. 我们可以在示例工程中来完成这些导出的采购订单的模板,将来用到ERP系统里时,可直接把代码直接复制过去就可以用了。
  2. 画边框线
            边框线是属于样式范畴,而样式的作用范围是整个工作簿(包括所有的工作表),因此我们可以工作簿来创建样式,再给样式设置边框线。
    创建CreateOrderXls类,代码如下

    打开结果文件:
  3. 合并单元格
    找出我们需要合并哪些单元格:
    1)    第一行是显示订单的标题:比如显示为 “采购订单”,需要合并A、B、C、D列。
    2)    第3行的B、C、D列,需要合并成一个单元格,用来显示供应商的名称
    3)    第8行,需要合并成一个单元格,用来显示“订单详情
  4. 设置单元格的值
    把采购订单里那些固定的显示文本给填上。在合并单元格代码后添加:

    结果如下:
  5. 设置行高和列宽
    输出的结果跟我们要的格式还有差距,需要调整一下行高和列宽
    代码如下

    结果如下:
  6. 设置表格的对齐方式和字体
    现在看到对齐方式全都是靠左对齐,需要改成居中,字体的大小也要设置一下
    代码如下:

    结果:
  7. 设置日期格式
    订单表内容中有下单、审核、采购、入库日期。我们也需要设置一下日期格式的显示
    代码如下:

    测试结果:

三.后端代码实现

  1. 在IOrdersBiz接口中添加方法exportById
  2. 在OrdersBiz中实现方法
    将示例代码中的创建模板的代码复制过来,删除测试日期
    修改创建内容部分的代码,添加rowCnt定义,代表内容部分需要创建的总行数

    注入EmpDao和SupplierDao,订单中只保留经办人的编号和供应商的编号,需要把它们转成对应的名称

    在代码后添加



    修改输出流

  3. 修改OrdersAction,添加exportById方法

四.前端代码实现

  1. 引入download.js
    在orders.html中引入download.js
  2. 修改orders.js
    修改弹出订单详情窗口代码:

供应商或客户数据导入

一.需求分析

  1. 我们需要将批量的供应商(客户)信息导入到系统里,因此我们需要实现导入功能
  2. 如下图:点击导入按钮
  3. 弹出导入数据对话框:

  4. 选择excel文件后点击“导入”按钮,把数据导入到系统中,成功后刷新表格并关闭“导入数据”窗口

二.后端代码实现

  1. Dao层编写
    修改SupplierDao,添加根据名称查询的条件:
  2. 业务逻辑层编写
    在ISupplierBiz中添加方法

    在SupplierBiz中添加实现

  3. Action编写
    在SupplierAction中添加上传文件的支持:

    添加upload方法:

三.前端代码

  1. 添加导入窗口
  2. 修改crud.js, 添加导入按钮
  3. 添加导入窗口的初始化与提交
  4. ProcessData:
            要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型”application/x-www-form-urlencoded”。如果要发送DOM树信息或者其它不希望转换的信息,请设置为false。
  5. ContentType:
           要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为”application/x-www-form-urlencoded”。该默认值适合大多数应用场合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值