如何把100万条数据快速导入到excel??

时间:2022-09-20 23:31:45
如何把100万条数据用程序快速导入到excel??

谢谢回复,永远感激你的帮助!

16 个解决方案

#1


要快速,就不能用OLE了。偶建议将数据导出到.csv文件中,就是以分隔符隔开的文本文件格式,Excel可以打开。

#2


将数据导出到.csv文件?怎么导,可以给指点一下吗 ?

谢谢ccrun(老妖)!

#3


伪代码如下:

TStringList *pList = new TStringList;

打开数据集
...

for(int i=0; i<数据集总数; i++)
{
    pList->Add(字段1 + String(char(0x09)) + 字段2
            + String(char(0x09)) + 字段3 + String(char(0x09)) +  字段4);
}

pList->SaveToFile("C:\\123.csv");

delete pList;

#4


以前不是有人发过这样的帖子吗
我试过,快很多
叫什么来的忘记了
是不是上次说买房子得到停车位那个大哥啊,我忘记他的id了

#5


参考这里:

http://ccrun.com/src/v.asp?id=30

#6


谢谢各位的回复,

特别谢谢ccrun(老妖)

速度确实很快,可是所有的字段导出后都在一列啊!!

为什么会这样??

#7


up!
pList->SaveToFile("C:\\123.csv");
改成pList->SaveToFile("C:\\123.Txt");
再用Excel打开,Excel会询问你进行转换一次。即可按字段排了。

#8



TStringList *pList = new TStringList;

打开数据集
...

for(int i=0; i<数据集总数; i++)
{
    pList->Add(字段1 + String(char(0x09)) + 字段2
            + String(char(0x09)) + 字段3 + String(char(0x09)) +  字段4);
}

pList->SaveToFile("C:\\123.csv");

delete pList;

===========================================

pList->Add的时候不加回车换行,当然是一列了。
  pList->Add(字段1 + String(char(0x09)) + 字段2
            + String(char(0x09)) + 字段3 + String(char(0x09)) +  字段4+"\r\n");

#9


excel 每个Sheet 最大只能支持到65535行!
100万行这不是要了excel的命了!

#10


老妖的伪代码是可行的,楼主把excel到日时候的列分隔符设为tab就对了,或者你干脆把 char(0x09) 改为 ','

#11


excel 每个Sheet 最大只能支持到65535行!
100万行这不是要了excel的命了!

#12


你只能分成2个excel文件,因为excel最大行数是:65535,另外,这么大数据量绝对不能用OLE,一种就是用ADO,一种就是上面这种方法,先倒成.txt再导入excel,还有一种是直接写成EXCel格式,很快。我记得有人写过一个例子,真叫快,2000条记录一眨眼

#13


谢谢各位了!

#14


最好的办法还是使用控件,XLSreadwriteII,可以输出到excel97的格式,不过高版本的office打开是没有问题的,100万记录的话,可以使用他生成多个工作表,每个工作表65000条记录,当然,这个需要你自己控制。官方给出的输出速度是每秒100万个单元格,不过我想这应该是单元格不带有其他格式的输出速度,正常每秒20万单元格,应当还是没问题的,控件本身有例子,可以参考一下,速度方面绝对无与伦比,个人认为比华表的那个控件速度快多了。

#15


使用pList方式不需要加\r\n,因为pList->Add方法自动加的

#16


请参考王光红先生的代码http://ccrun.com/src/v.asp?id=30

#1


要快速,就不能用OLE了。偶建议将数据导出到.csv文件中,就是以分隔符隔开的文本文件格式,Excel可以打开。

#2


将数据导出到.csv文件?怎么导,可以给指点一下吗 ?

谢谢ccrun(老妖)!

#3


伪代码如下:

TStringList *pList = new TStringList;

打开数据集
...

for(int i=0; i<数据集总数; i++)
{
    pList->Add(字段1 + String(char(0x09)) + 字段2
            + String(char(0x09)) + 字段3 + String(char(0x09)) +  字段4);
}

pList->SaveToFile("C:\\123.csv");

delete pList;

#4


以前不是有人发过这样的帖子吗
我试过,快很多
叫什么来的忘记了
是不是上次说买房子得到停车位那个大哥啊,我忘记他的id了

#5


参考这里:

http://ccrun.com/src/v.asp?id=30

#6


谢谢各位的回复,

特别谢谢ccrun(老妖)

速度确实很快,可是所有的字段导出后都在一列啊!!

为什么会这样??

#7


up!
pList->SaveToFile("C:\\123.csv");
改成pList->SaveToFile("C:\\123.Txt");
再用Excel打开,Excel会询问你进行转换一次。即可按字段排了。

#8



TStringList *pList = new TStringList;

打开数据集
...

for(int i=0; i<数据集总数; i++)
{
    pList->Add(字段1 + String(char(0x09)) + 字段2
            + String(char(0x09)) + 字段3 + String(char(0x09)) +  字段4);
}

pList->SaveToFile("C:\\123.csv");

delete pList;

===========================================

pList->Add的时候不加回车换行,当然是一列了。
  pList->Add(字段1 + String(char(0x09)) + 字段2
            + String(char(0x09)) + 字段3 + String(char(0x09)) +  字段4+"\r\n");

#9


excel 每个Sheet 最大只能支持到65535行!
100万行这不是要了excel的命了!

#10


老妖的伪代码是可行的,楼主把excel到日时候的列分隔符设为tab就对了,或者你干脆把 char(0x09) 改为 ','

#11


excel 每个Sheet 最大只能支持到65535行!
100万行这不是要了excel的命了!

#12


你只能分成2个excel文件,因为excel最大行数是:65535,另外,这么大数据量绝对不能用OLE,一种就是用ADO,一种就是上面这种方法,先倒成.txt再导入excel,还有一种是直接写成EXCel格式,很快。我记得有人写过一个例子,真叫快,2000条记录一眨眼

#13


谢谢各位了!

#14


最好的办法还是使用控件,XLSreadwriteII,可以输出到excel97的格式,不过高版本的office打开是没有问题的,100万记录的话,可以使用他生成多个工作表,每个工作表65000条记录,当然,这个需要你自己控制。官方给出的输出速度是每秒100万个单元格,不过我想这应该是单元格不带有其他格式的输出速度,正常每秒20万单元格,应当还是没问题的,控件本身有例子,可以参考一下,速度方面绝对无与伦比,个人认为比华表的那个控件速度快多了。

#15


使用pList方式不需要加\r\n,因为pList->Add方法自动加的

#16


请参考王光红先生的代码http://ccrun.com/src/v.asp?id=30