java将数据生成csv文件

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

时间: 2024-08-05 20:19:31

java将数据生成csv文件的相关文章

java生成CSV文件

内容简介 本文内容使用java实现数据生成CSV文件,有关CSV文件知识请参考:CSV (逗号分隔值文件格式) 实现代码(仅供参考,请根据实现情况来修改) /** * 坐标点参数实体类 */ public class PointsParamDto { /** * 坐标id(由1开始,累加1,这样的:1,2,3,4,5...) */ private String pointId; /** * X 坐标点 */ private String x; /** * X 坐标点 */ private Str

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

系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多次调用[restful接口],每次[restful接口]会返回一个生成好的csv文件内容.[服务*** server]将每次[restful接口]返回的csv内容保存成一个csv文件.并将生成的多个csv文件打包成一个zip压缩包. [restful接口]:根据一组数据生成csv文件 1. java

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

http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280.html . Office2007与Office Open XML 在Office 2007之前,Office一直都是以二进制位的方式存储,但这种格式不易被其它软件拿来使用,在各界的压力下,MicroSoft于2005年发布了基于XML的ooxml开放文档标准.ooxml的xml schema强调减

Java生成CSV文件实例详解

本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputS

java 生成 csv文件

一.csv文件 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据.CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符.通常,所有记录都有完全相同的字段序列. CSV是一种通用的.相对简单的文件格式,被用户.商业和科学广泛应用.最广泛

使用commons-csv生成.csv文件

做个代码笔记,方便以后看. commons-csv-1.1.jar的源码:https://github.com/apache/commons-csv CsvFileBuilder.java类 package com.huihui.main; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; im

Jsoup学习笔记9:Jsoup 解析saz文件,读取其中的htm文件到字符串,提取字符串中的数据写入csv文件中

本篇笔记将上篇笔记的操作做些改进,不再把saz文件中的htm文件解析出来,而是不解压直接读取其中的数据成字符串,基本思路如下: 1.自定义一个从文本文件读取内容到字符串的类:解析saz文件中的htm文档,将文件的内容读取到字符串中 2.自定义利用Jsoup解析htm字符串的类:利用Jsoup解析传入的htm字符串,将解析结果写入csv文件中 3.解析时,指定好文件路径,直接调用上面的两个工具类即可 示例代码如下: package com.daxiang.saztest; /** * 自定义一个从

java根据模板生成word文件

原文:java根据模板生成word文件 源代码下载地址:http://www.zuidaima.com/share/1550463664884736.htm AVA生成word模板程序步骤 1. 将freemarker-2.3.13.jar复制到项目\WEB-INF\lib目录下 2. 编辑模板文件 (1) 将DOC文件另存为xml文件,将xml文件在eclipse环境下打开,右键选"源"→"格式".此处注意xml文件属性是UTF-8. (2) 将xml文件中需要替

PHP 生成.csv 文件并下载到浏览器

最近做了一个项目需要把订单的信息显示出来,并且能够把相关信息放到一个.csv 文件中,下载到浏览器.首先我要说明的是.csv 文件,PHP 有专门的函数去解析该类型的文件,相关函数大家可以去官网查看.注意.csv 文件内容的编码格式是gbk格式的,所以有必要对字符格式进行转码.文件的样式如下. 一.首先要定义header 头 // 输出Excel文件头,可把user.csv换成你要的文件名 header ( 'Content-Type: application/vnd.ms-excel' );