Foxnic-SQL (15) —— 使用记录集导入或导出Excel

Foxnic-SQL (15) —— 使用记录集导入或导出Excel

概述

        很多时候,我们需要将外部 Excel 表中的数据导入到数据库,或是需要将某个查询结果导出到 Excel 文件中,对于这种简单的操作,Foxnic-SQL 已经内置了 ExcelReader 和 ExcelWriter 用于处理 Excel 数据。

        本文中的示例代码均可在 foxnic-samples: 用于展示和提供 Foxnic 相关的示例工程和代码 项目中找到。

读取Excel到RcdSet

        Foxnic-SQL 使用 ExcelReader 类读取 Excel 中某个 sheet 的数据,这些数据将被读取到 RcdSet,通过 RcdSet 可以完成数据库保存等操作。

        在读取 Excel 前需要定义 Excel 结构,将 Excel 列映射到数据库字段,如下代码所示。一旦 Excel 数据转换成 RcdSet ,开发人员就可以去做其它更多额外的数据处理。

/**
* 导入 Excel
* */
@Test
public void  importExcel() throws Exception {
    // 获得 DAO 对象
    DAO dao = DBInstance.DEFAULT.dao();
    // 获得导入的 Excel 文件
    MavenProject project=new MavenProject(this.getClass());
    File xlsx= FileUtil.resolveByPath(project.getSourceFile(this.getClass()).getParentFile() ,"data.xlsx");
    // 构建 Excel 列 与 表字段的对应关系
    ExcelStructure es=new ExcelStructure();
    es.addColumn("A","id");
    es.addColumn("B","name");
    es.addColumn("C","price");
    es.addColumn("D","create_time");
    //  从第二行开始读取
    es.setDataRowBegin(2);
    // 读取 Excel
    ExcelReader reader=new ExcelReader(xlsx);
    // 读取到 RcdSet
    RcdSet rs = reader.read("水果",es);
    // 遍历
    for (Rcd r : rs) {
        // 输出数据
        System.out.println(r.toJSONObject());
        // 生成 Insert 语句
        Insert insert=SQLBuilder.buildInsert(r,"example_goods",dao,true);
        System.out.println(insert.getSQL());
        // 生成 Update 语句
        Update update=SQLBuilder.buildUpdate(r, SaveMode.ALL_FIELDS,"example_goods",dao);
        System.out.println(update.getSQL());
    }
}

写入RcdSet到Excel

        Foxnic-SQL 使用 ExcelWriter 类写入数据到 Excel 文件。如下代码所示,首先通过 DAO 获得 RcdSet, 再通过 ExcelWriter 的 fillSheet 填充 Excel 的 Sheet 数据。

/**
* 导出 Excel
* */
@Test
public void  exportExcel() {
    // 获得 DAO 对象
    DAO dao = DBInstance.DEFAULT.dao();
    // 获得导出的 Excel 文件
    MavenProject project=new MavenProject(this.getClass());
    File xlsx= FileUtil.resolveByPath(project.getSourceFile(this.getClass()).getParentFile() ,"out-"+System.currentTimeMillis()+".xlsx");
    // 查询数据
    RcdSet rs=dao.query("select * from example_goods");
    // 创建 ExcelWriter 对象
    ExcelWriter writer=new ExcelWriter();
    // 填充指定的 Sheet
    writer.fillSheet(rs,"商品");
    // 保存到文件
    writer.save(xlsx);
}

小结

        本节主要介绍了在 Foxni-SQL 中使用 ExcelWriter 和 ExcelReader 导出和导入 Excel 数据。Foxni-SQL 尽量为开发者提供简洁的方法完成这些操作,当然 ExcelWriter 和 ExcelReader 也具备一些高级用法以备适应复杂的业务场景,这些小伙伴们可自行探索。

相关项目

foxnic: Foxnic基础框架,开发工具。

foxnic-web: FoxnicWeb是一个应用开发框架,高效、快速、稳定。

Foxnic-EAM固定设备资产管理系统: EAM固定资产设备管理系统,满足中小企业基本需求,对常用资产设备进行信息化管理,包含自定义支持各类设备、自带导入导出、维护工作统计、采购管理、文档管理、合同管理等功能

foxnic-samples: 用于展示和提供 Foxnic 相关的示例工程和代码

官方文档

Foxnic 开发文档 - 入门指南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值