以下是程序中用到的方法
// 写入数据
public static StringBuffer writeCsv(
List<LinkedHashMap<String, Object>> mapList, String csvstr)
throws Exception {
StringBuffer logsb = new StringBuffer();
FileOutputStream out = null;
OutputStreamWriter osw = null;
BufferedWriter bw = null;
try {
File csvfile = new File(csvstr); // logFile 是路径,就叫做String logFile
// 生成路径+想要的文件名+".csv";
//System.out.println(csvstr);
out = new FileOutputStream(csvfile);
osw = new OutputStreamWriter(out, "GB2312");
bw = new BufferedWriter(osw);
// CSV默认是已逗号","分隔单元格的。这里是表头
if (mapList.size() > 0) {
// 表头
// System.out.println("开始写表头");
String content = "";
for (Entry<String, Object> entry : mapList.get(0).entrySet()) {
content += entry.getKey() + ",";
}
bw.write(content + "\r\n");
// System.out.println("表头写入完成");
// System.out.println("开始写入内容");
// 数据
for (int i = 0; i < mapList.size(); i++) {
String datastr = "";
HashMap<String, Object> propertymap = mapList.get(i);
for (Entry<String, Object> entry : propertymap.entrySet()) {
String obj = entry.getValue() + "";
if (obj.contains("oracle.sql.CLOB")) {
obj = oracleclobToString(entry.getValue());
}
if (obj.contains("\"")) {
obj = obj.replace("\"", "\"\"");
}
if (obj.contains(",")) {
obj = "\"" + obj + "\"";
}
datastr += obj + ",";
}
bw.write(datastr + "\r\n");
bw.flush();
}
// System.out.println("内容写入完成");
}
logsb.append("INFO 导入CSV共" + mapList.size() + "行\r\n");
} catch (Exception e) {
throw e;
} finally {
bw.close();
osw.close();
out.close();
}
return logsb;
}
// CLOB数据转换成String
// oracle.sql.Clob类型转换成String类型
public static String oracleclobToString(Object objclob) throws Exception {
String reString = "";
Clob clob = (Clob) objclob;
Reader is = clob.getCharacterStream();// 得到流
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
StringBuffer sb = new StringBuffer();
while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
sb.append(s);
s = br.readLine();
}
reString = sb.toString();
return reString;
}
此处注意的是
1、数据库中字段的类型如果是Clob类型的话,则需要转换成String类型,否则写入到csv中是无法看到数据
2、写入CSV文件中的字段值里面的有双引号的则需要转换,否则写入数据格式就错开,转换方式则是用两个双引号替换,替换后则写出后还是一个双引号
3、写入的时候,最好一行一行写入,否则数据多的时候会包溢出
// CLOB数据转换成String // oracle.sql.Clob类型转换成String类型
此方法可以用到备份数据,导出csv文件用到,
相关推荐
Java 使用 JDBC 将数据库数据导出到 CSV 文件 Java 是一种广泛使用的编程语言,它提供了多种方式来处理数据库数据,而 JDBC(Java Database Connectivity)是 Java 中连接数据库的标准 API 之一。将数据库数据导出...
通过上述分析,我们可以了解到利用Oracle PL/SQL编写存储过程或函数来实现表数据导出为CSV文件的具体步骤。这种方式不仅能够提高工作效率,还能确保数据的安全性和准确性。此外,通过创建通用的函数还可以进一步提升...
在C#编程中,操作数据库是一项常见的任务,而将数据导出为CSV(Comma Separated Values)格式则常用于数据交换、报表生成或者数据分析。本文将深入探讨如何使用C#来实现这两个功能。 首先,我们需要连接到数据库。...
"网格数据导出到csv文件(含数据库)"这个主题涉及到了将这些数据转换成CSV(逗号分隔值)格式,并且可能涉及到与数据库,如Access,的交互。 CSV文件是一种非常通用的数据交换格式,因为它简单且可读性强。它由一行...
Qt中将sqlite表中的数据导出为csv表格形式,代码调用方便,整体代码包含了数据库的增删改查,tableview显示sqlite,代码较完整。开发环境为ubuntu+qt5.6.1在win7+qt5.6.1下也没问题。
C# 开发的导出六个数据库查询结果为CSV文件到指定目录的小程序源代码。可同时导出多个库(mssql、oracle)多个查询数据,无需安装oracle客户端,。 本程序用于自动导出数据上报流感监测信息。需要的同学可下载学习...
CSV是一种通用的数据交换格式,易于读取和处理,适合导入到各种数据分析软件或电子表格程序中。对于包含中文字符的表格,我们需要确保在导出时正确编码,通常选择UTF-8编码可以避免乱码问题。在Bootstrap Table中,...
6. **写入CSV文件**:使用CSV库的方法,将转换后的数据写入到名为"csvfile"的文件中。 7. **关闭资源**:在完成写入后,确保关闭ResultSet、Statement和Connection以释放数据库资源。 在实现这个程序时,需要注意...
1. **导出到本地文件系统**:使用 `insert overwrite local directory` 命令将数据导出到本地目录,例如: ```sql hive> insert overwrite local directory '输出地址' select * from 表名; ``` 也可以自定义...
本文将深入探讨如何使用PHP来实现数据导出成CSV文件。 首先,我们需要了解CSV文件的基本结构。CSV文件是以逗号分隔的数据值,每一行代表一条记录,每个字段之间用逗号隔开。如果字段中包含逗号或其他特殊字符,通常...
大量数据库导出csv,一般的通过PLSQL导出csv文件,但对于数据量较大时,则需要通过数据库内部去调用存储过程去导出,这样效率会高出很多
1-Gbase导出csv文件教程
在QT编程环境中,将MYSQL数据库的数据导出为CSV文件是一项常见的任务,这有助于数据分析、存储或与其他不支持SQL的程序交换数据。QT提供了一个强大的框架,可以与多种数据库(包括MYSQL)进行交互,并且可以方便地...
### 如何将WinCC归档的历史数据导出到EXCEL CSV文件 #### 一、概述 在工业自动化领域,WinCC (Windows Control Center) 是一款广泛使用的监控与数据采集(SCADA)软件,用于实现对各种工业过程的监控。随着时间的...
有时,用户可能需要将这些历史数据导出到更通用的格式,如Excel CSV文件,以便进行进一步的数据分析和处理。下面,我们将详细介绍如何实现这个过程。 首先,理解WinCC的数据归档系统。WinCC的归档功能允许用户定义...
一旦数据在Hive中准备就绪,可以将其导入到一个关系型数据库(如MySQL、PostgreSQL等),因为这些数据库通常提供将数据导出为CSV、文本或HTML格式的功能。 以下是这个过程的详细步骤: 1. **HBase条件查询**:使用...
在工业自动化领域,西门子的TIA博途( Totally Integrated Automation Portal)是广泛使用的工程组态软件,其中WinCC是其人机界面(HMI)组件...总之,掌握这种数据导出方法对于提高工作效率和提升数据分析能力至关重要。
C#链接Oracle数据库查询表导出csv 1、Convert.Ini.exe 数据库配置程序,可执行; 2、CsvDataExporter.exe 主程序,可执行; 3、Config.dll主程序配置文件,可用记事本打开里面有详细说明; 4、Convert.Custom.dll 主...
exp 命令用于将 Oracle 数据库数据导出到文件中,而 imp 命令用于将数据从文件中导入到 Oracle 数据库中。这些命令可以在命令行中使用,例如,在 Windows 中,可以打开命令行窗口,输入 exp 用户名/密码@标识 file=d...
本软件适合有多台计算机,有相同的数据库,用户名和密码。...数据库名或者表名 格式为 数据库.dbo.表名 ,可同时输入多个表,以“,”分隔 用户名和密码正确输入即可,导出路径输入格式为D:\databackup