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.提取每一张图片对应的位 ...
随机推荐
- Light Bulb ZOJ - 3203 三分
三分: 和二分非常类似的一个算法,与二分不同的是 二分是单调的,而三分是一个先增后减或者先减后增 三分可以求出峰值. 注意三分一定是严格单调的,不能有相等的情况. 讲个例题: 题目 题意: 一个人发现 ...
- UWP(一)开发入门
异常问题总结 Your project file doesn't list 'win10' as a "RuntimeIdentifier". You should add 'wi ...
- OpenStack Train版-4.安装placement放置服务
安装placement放置服务 创建placement数据库 mysql -uroot CREATE DATABASE placement; GRANT ALL PRIVILEGES ON place ...
- kubernetes进阶(一) kubectl工具使用详解
管理k8s核心资源的三种基本方法: 一.陈述式-主要依赖命令行工具 --可以满足90%以上的使用场景,但是缺点也很明显: 命令冗长,复杂,难以记忆 特定场景下,无法实现管理需求 对资源的增.删.查操 ...
- Ruby on Rails
Ruby on Rails 是一个可以使你开发,部署,维护 web 应用程序变得简单的框架.在2004年7月,由Rails的创始人大卫·海纳梅尔·韩森从37signals公司的项目管理工具Baseca ...
- 微服务架构Day03-SpringBoot之web开发配置
概述 SpringBoot开发: 1.创建SpringBoot应用,选中需要的场景模块. 2.SpringBoot已经默认将场景模块配置好,只需要在配置文件中指定少量的配置(数据库地址,用户名,密码) ...
- 【非原创】codeforces - 1067A Array Without Local Maximums【dp】
学习博客:戳这里 附本人代码: 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 co ...
- Polya定理应用实例
关于Polya原理的应用经典实例: 问题:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到只算作一种.问有多少种染色状态. 解:先将棋子表上号: 1 6 2 5 3 4 那么把所有通过旋转 ...
- hdu2333-贪心,如何去后效性,背包太大怎么办,如何最大化最小值,从无序序列中发掘有序性质
补充一下我理解的中文题意.. 你要重新组装电脑..电脑有一些部件..你的预算有b,b(1~1e9),有n个部件..每个部件有类型和名称以及价钱和质量现在你要在不超过预算b的情况下..每个类型都买一个部 ...
- PicGo:搭建图床
PicGo:搭建图床 PicGo 免费搭建个人图床工具PicGo: 支持Windows.MacOS 和 Linux 软件目前覆盖的图床有8个平台: SM.MS图床.腾讯云COS.GitHub图床.七牛 ...