excel存储容量,2010版后支持单张sheet表格最大行数1048576,sheet表最大数目没有统一说法,但有一点可以肯定,数据量大太加上自己电脑的性能的限制,excel整体性能会受影响,不是说无限制往里存。
其中相同文件名均代表同一SQL输出不同格式的文件,从下图中可以看出,相同的查询结果,如果内容较少(几十KB),存放在csv文件中占用空间较少。如果内容较大(几百KB),存放在excel文件中占用空间较少,这个应该是excel文件在大容量时做了性能优化。毕竟MicroSoft是靠系统和办公软件起家,其excel还是具备含金量的,不仅仅是好看,在高级层面还是做了不少工作的。
样例代码中包含以下工具类,有不清楚的请留言。
CalculateUtil .java
import com.amap.axf.data.batch.constant.Constant;
* Created by loongshawn on 2016/12/7.
* NOTE 计算指定数字所属区间段
public class CalculateUtil {
public static int getMultiplyingFactor(int num){
int factor = 1;
for (int i=1;i<= Constant.MAX_PAGE;i++){
int tmp = num - (i*Constant.XLSX_LENGTH);
if (tmp <= 0){
factor = i;
break;
return factor;
ListUtil .java
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.amap.axf.data.batch.constant.Constant;
import com.amap.axf.data.batch.constant.KEY;
import java.util.List;
* Created by loongshawn on 2016/11/29.
* NOTE 排序
public class ListUtil {
public static List<Integer> getSortedList(List<Integer> list){
int size = list.size();
for (int i=0;i<size;i++){
for (int j=i;j<size;j++){
Integer item_i = list.get(i);
Integer item_j = list.get(j);
if (item_i.intValue() > item_j.intValue()){
list.set(i,item_j);
list.set(j,item_i);
return list;
public static String[] getListFromJSONArray(JSONArray jsonArray){
int columnSize = jsonArray.size();
StringBuffer tmp_column = new StringBuffer();
for (int m=0;m<columnSize;m++){
JSONObject jsonCloumn = jsonArray.getJSONObject(m);
String title_name = jsonCloumn.getString(KEY.COLUNM_NAME);
tmp_column.append(title_name);
if (m != columnSize-1){
tmp_column.append(Constant.COMMA);
String[] columnNameList = tmp_column.toString().split(Constant.COMMA);
return columnNameList;
public static String getStringFromJSONArray(JSONArray jsonArray){
int columnSize = jsonArray.size();
StringBuffer tmp_column = new StringBuffer();
for (int m=0;m<columnSize;m++){
JSONObject jsonCloumn = jsonArray.getJSONObject(m);
String title_name = jsonCloumn.getString(KEY.COLUNM_NAME);
tmp_column.append(title_name);
if (m != columnSize-1){
tmp_column.append(Constant.TAB);
return tmp_column.toString();
C# 开发的导出六个数据库查询结果为CSV文件到指定目录的小程序源代码。可同时导出多个库(mssql、oracle)多个查询数据,无需安装oracle客户端,。
本程序用于自动导出数据上报流感监测信息。需要的同学可下载学习。使用VS2017编译。
通过文件操作,加载SQL文件夹下特定语句和变量条件,查询数据库结果后保存为 文件名yyyymmdd.csv格式文件。
Console.WriteLine("等待导出下一个文件...");
string fileName3 = "D:\\流感上报\\hda_" + DateTime.Now.ToString("yyyyMMdd") + ".csv";
ImportToCSV(PETable3(), fileName3);
Console.WriteLine(fileName3 + "出院小结导出成功");
Console.WriteLine("等待导出下一个文件...");
string fileName4 = "D:\\流感上报\\hdr_" + DateTime.Now.ToString("yyyyMMdd") + ".csv";
ImportToCSV(PETable4(), fileName4);
Console.WriteLine(fileName4 + "院内死亡流感病例导出成功");
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.8</version>
</dependency>
二,代码实现
publicstaticvoidmain(Stri...
@PostMapping("/news-csv")
@ApiOperation(value = "查询数据导出CSV")
public void newsDataExportCsv(HttpServletResponse response, @ApiParam(value = "导出对象实体", required = true) @RequestBody PageEntity pageEntity) throws Exception {
logger.info(New
首先:什么是.csv文件?
所谓“CSV”,是CommaSeparatedValue(逗号分隔值)的英文缩写,通常都是纯文本文件。下面是一个实际CSV文件中的部分内容,让大家对他有一个感性的认识。我们选的是Sjojo_Rescan的CSV文件(Sjojo是ASW-亚洲扫图风的成员之一)。
sj_mino1001.jpg,715282,4FB55FE8,
sj_mino1002.jpg,47...
以前导出数据的工具类总是各种各样的,而且数据量大的导出要么不行,要么就是比较慢,于是在网上找到一些关于导出数据到csv的代码,自己做了些整理和调整。其他地方只要调用改工具类对应方法即可。
package cn.yunda.guns.base.utils;
import com.alibaba.druid.util.StringUtils;
import lombok.extern.slf4j...
public class ExportCSV {
public static void main(String[] args) {
Connection connection = null;
try {
// 连接数据库
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password");
Statement statement = connection.createStatement();
// 查询数据
ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable");
// 创建CSV文件并写入数据
FileWriter writer = new FileWriter("export.csv");
while (resultSet.next()) {
String id = resultSet.getString("id");
String name = resultSet.getString("name");
String age = resultSet.getString("age");
writer.write(id + "," + name + "," + age + "\n");
writer.close();
// 关闭连接
resultSet.close();
statement.close();
connection.close();
} catch (SQLException | IOException e) {
e.printStackTrace();
以上代码将数据库表`mytable`中的`id`、`name`、`age`字段导出到`export.csv`文件中。你需要将其中的`mydatabase`、`root`、`password`、`mytable`替换为你自己的数据库信息。