1,httpRequest接口触发进程[或者可以换成其他方式触发]

/** * 出入库生成CSV文件 * @param req * @param params * @return */@RequestMapping(value = "explanCsvFileToOrder")ResponseMessage explanCsvFileToOrder(HttpServletRequest req, @RequestParam Map<String, String> params) {    TtxSession sess = getSession(req, params.customer)    ResponseMessage rsp    rsp = validate(sess, params)    if (!rsp.hasError()) {        rsp = excfSvc.explanCsvToShipAndRece(sess,params.warehouseCode)    }    return rsp}
    /**     * scheduler_SHIPANDRECE     * @param sess     * @param warehouseCode     * @return     */    ResponseMessage explanCsvToShipAndRece(TtxSession sess, String warehouseCode) {        ResponseMessage rsp = ResponseMessageFactory.success(sess, null)        try {            //读取全局大文档,找到数据执行的SQL            List invSQLS = template(sess).queryForList("select textValue from large_text where warehouseCode='*' and type='CSV_FILE_SQL' and code='CSV_SHIPANDRECE'")            if (!invSQLS) {                return ResponseMessageFactory.error(sess, "未查询到单据条件SQL")            }            //找到存储路径            List filePath = template(sess).queryForList("select value from config_value where warehouseCode=? and  identifier='CSVFILEPATH'", warehouseCode)//        String path = "c:/export/"            if (!filePath) {                return ResponseMessageFactory.error(sess, "未查询到存储路径")            }            //定义文件存储路径            String path = filePath[0]["value"].toString()            //定义命名格式            String fileName = "OrderData-" + LocalDateTime.now().format(dtf)            String invSql = invSQLS[0]["textValue"].toString()            //查询出来数据            List locInv = template(sess).queryForList(invSql)

            List<Object> exportData = new ArrayList<Object>()            //给csv文件添加标题            exportData.add("DHLWarehouseNo")            exportData.add("StorageNo")            exportData.add("RelatedOrderNo")            exportData.add("ActualWarehouseTime")            exportData.add("SpareColumn1")            exportData.add("SpareColumn2")            exportData.add("LoadNo")            exportData.add("InventoriesAmount")            exportData.add("MaterialExpiryDate")            exportData.add("Department")            exportData.add("MaterialState")            List<List<Object>> datalist = new ArrayList<List<Object>>()            List<Object> data            //循环添加数据主体            locInv?.each {                data = new ArrayList<Object>()                data.add(it.CODE)                data.add(it.WarehouseNo)                data.add(it.deliveryNo)                data.add(it.lastUpdated)                data.add(it.SpareColumn1)                data.add(null)                data.add(it.skuCode)                data.add(it.quantity)                data.add(it.materialExpiryDate)                data.add(it.department)                data.add(it.inventorySts)                datalist.add(data)            }

            //创建文件            File file = this.createCSVFile(exportData, datalist, path, fileName)            String fileName2 = file.getName()            System.out.println("文件名称:" + fileName2)        } catch (Throwable t) {            ExceptionManager.logException(sess, t)            return ResponseMessageFactory.error(sess, WmsMessages.MSG_GNRL_0000)        }        return rsp    }
/** * 生成CSV文件的主体方法 * @param head * @param dataList * @param outPutPath * @param filename * @return */public static File createCSVFile(List<Object> head, List<List<Object>> dataList, String outPutPath, String filename) {    File csvFile = null    BufferedWriter csvWtriter = null    try {        csvFile = new File(outPutPath + File.separator + filename + ".csv")        File parent = csvFile.getParentFile()        if (parent != null && !parent.exists()) {            parent.mkdirs()        }        csvFile.createNewFile()

        // GB2312使正确读取分隔符","        csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(                csvFile), "GB2312"), 1024)        // 写入文件头部        writeRow(head, csvWtriter)

        // 写入文件内容        for (List<Object> row : dataList) {            writeRow(row, csvWtriter)        }        csvWtriter.flush()    } catch (Exception e) {        e.printStackTrace()    } finally {        try {            csvWtriter.close()        } catch (IOException e) {            e.printStackTrace()        }    }    return csvFile}
private static void writeRow(List<Object> row, BufferedWriter csvWriter) throws IOException {    // 写入文件头部    for (Object data : row) {        StringBuffer sb = new StringBuffer()        String rowStr = sb.append("\"").append(data).append("\",").toString()        csvWriter.write(rowStr)    }    csvWriter.newLine()}

转载于:https://www.cnblogs.com/joker331/p/10437190.html

java将数据生成csv文件相关推荐

  1. java将数据写入csv文件,从csv文件中读取数据

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java将数据写入csv文件,从csv文件中读取数据 测试代码 public static void main(String[] arges){/ ...

  2. java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?

    名为OpenCSV的库提供API来从.CSV文件读取数据或将数据写入.CSV文件.此处说明了如何使用Java程序写入.csv文件的内容. Maven依赖 com.opencsv opencsv 4.4 ...

  3. 在jsp中点击按钮,在bean中把已经查出的数据,生成csv文件,然后在ie中自动打开

    Quote: 这个问题可以分两部分讨论: 1.csv文件的格式 2.通过jsp向客户端输出csv文件 第一个问题我们就按简单的来讨论,可以认为是每个字段用""包含后再用,号分割 比 ...

  4. java导出csv文件乱码_记一次java生成csv文件乱码的解决过程 (GB2312编码)

    系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多 ...

  5. Java实现生成csv文件并导入数据

    一.需求: 下载列表,在没有过滤之前下载列表所有数据,点击过滤之后,下载过滤之后对数据,生成csv文件. 二.思路: 先根据条件(是否过滤了数据)筛选出数据,将数据导入csv文件,生成文件并返回. 三 ...

  6. Java生成CSV文件

    1.新CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils;import java.io.BufferedWriter; imp ...

  7. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解...

    http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...

  8. java导出csv文件_java导出生成csv文件的方法

    本文实例为大家分享了java导出生成csv文件的具体代码,供大家参考,具体内容如下 首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分 ...

  9. java 生成csv文件_Java生成CSV文件实例详解

    本文实例主要讲述了java生成csv文件的方法,具体实现步骤如下: 1.新建csvutils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

最新文章

  1. 常用windows命令
  2. SKIP-NAME-RESOLVE ——错误的使用时机造成用户权限
  3. 使用Packet.dll和npf.sys实现原始数据包的发送和接收
  4. php模板引擎循环start,PHP模板引擎Smarty内建函数section,sectionelse用法详解
  5. 深入理解JavaScript之Event Loop
  6. Python中GIL(全局解释器锁)
  7. jstl错误:According to TLD or attribute directive in tag file, attribute value does not accept any expr
  8. 【渝粤教育】广东开放大学 演绎娱乐经验管理 形成性考核 (49)
  9. 面试题:逗号表达式运用
  10. 在vue中实现锚点定位功能
  11. 网络基础知识之报文格式介绍
  12. 上交所实时行情文件汇总
  13. 工业互联网是不是很难学对于女生而言?
  14. VR行业发展的前景和现状?
  15. bootstrap_blue_print_volume ii 读书笔记
  16. 浙大第四版概率论第五、六章思维导图
  17. 关于“过劳死”的法律探讨
  18. 堪培拉计算机专业就业情况,澳洲留学未来就业率最高的专业top10盘点
  19. 能在多种前端框架下使用的表格控件
  20. 上可以替代mobaxterm_解读:替代性程序——函证重灾区(干货)

热门文章

  1. 树莓派使用STEP7:安装wiringPi硬件外设驱动C库
  2. NB模组基本AT指令
  3. 2018 总结 2019 展望
  4. C++学习(一)之Visual Studio安装以及首次使用
  5. 解决ubuntu16.04 qt5.9.1无法输入中文
  6. day02-java关键字
  7. BZOJ 2324: [ZJOI2011]营救皮卡丘(带上下限的最小费用最大流)
  8. 一个显示页码用的helper。。。
  9. 转一个无聊的爱情故事:如果有个女生为你哭
  10. c语言 拓补排序源代码,拓扑排序C语言代码