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()
}
java将数据生成csv文件的更多相关文章
- 从一个PHP数据生成 CSV 文件
这的确是一个很简单的功能,从一个PHP数组生成一个.csv文件.此函数使用 fputcsv PHP 内置函数 <? function generateCsv($data, $delimiter ...
- java调用sqlldr导入csv文件数据到临时表
package cn.com.file;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File; ...
- Java生成CSV文件实例详解
本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...
- Java生成CSV文件
1.新CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; im ...
- java导出生成csv文件
首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分隔的,对比如下图: txt中显示: 修改文件后缀为csv后显示如下: 在java中我 ...
- POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解
http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...
- java 生成 csv文件
一.csv文件 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是 ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数 ...
- 图像处理项目——生成csv文件提高读取效率
利用pyhton脚本生成csv文件 *开发环境为windows PyCharm*使用的是pyhton脚本*生成人脸和人脸对应的标签的csv文件 一:主要步骤 1.载入对应路径2.提取每一张图片对应的位 ...
随机推荐
- 一个方便 LeetCode 复习的脚本
这个脚本半年前就在用了,只不过一直没有公开. 这是一个简易的 LeetCode 自动统计程序, 可自动统计最近提交通过的题目, 并以 Markdown 的形式展示相关的数据. 采用 GitHub Ac ...
- 【ybt金牌导航1-2-4】免费馅饼
免费馅饼 题目链接:ybt金牌导航1-2-4 题目大意 有一个直线,在某一个时刻有一个馅饼会出现在一些位置,有它的价值. 一个人一开始可以站在直线的任意地方,然后他每个时刻可以不移动,或向任意一边移动 ...
- 大数据开发-Spark Join原理详解
数据分析中将两个数据集进行 Join 操作是很常见的场景.在 Spark 的物理计划阶段,Spark 的 Join Selection 类会根 据 Join hints 策略.Join 表的大小. J ...
- 弹性伸缩 AS(Auto Scaling)
根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加 ECS 实例以保证计算能力,在业务需求下降时自动减少 ECS 实例以节约成本,弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳 ...
- bochs 调试 com 文件 magicbreak
参考 https://blog.csdn.net/housansan/article/details/41833581 在网上看到2中解决此问题的方法:1.使用dos下的debug32工具单步跟踪pm ...
- dp的小理解
这段时间刷dp,总结出了一个不算套路的套路. 1.根据题意确定是否有重叠子问题,也就是前面的状态对后面的有影响,基本满足这个条件的就可以考虑用dp了. 2.确定是dp后,就是最难的部分--如何根据题意 ...
- select(),fd_set(),fd_isset()
1. select函数 1. 用途 在编程的过程中,经常会遇到许多阻塞的函数,好像read和网络编程时使用的recv, recvfrom函数都是阻塞的函数,当函数不能成功执行的时候,程序就会一直阻塞在 ...
- Pycharm+任务栏悬浮+docked mode
先点下所想改变模式的模块, 然后: Window -> Activate tool window -> docked mode.
- bash variables plus operator All In One
bash variables plus operator All In One Errors missing pass params #!/usr/bin/env bash # echo emoji ...
- vue-cli & plugin:vue/strongly-recommended bug
vue-cli & plugin:vue/strongly-recommended bug ESLint plugin:vue/strongly-recommended module.expo ...