我用下面的方式生成个Excel文件,方法如下: buffList:=TStringList.Create; for i:=0 to TempQuery.FieldCount-1 do
str:=str+ tempQuery.Fields[i].FieldName+#9;
buffList.Add(str); while not TempQuery.Eof do
begin
str:='';
for i:=0 to TempQuery.FieldCount-1 do
str:=str+TempQuery.Fields[i].AsString+#9;
buffList.Add(str);
ProgressBar2.Position:=ProgressBar2.Position+1;
TempQuery.Next;
end;
buffList.SaveToFile('c:\Examdata.xls');但是我用ADO去连这个文件时确报错误"外部表不是预期的格式"。连接串是这样的
ADOConncetion.conncetionstring:"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=C:\Examdata.xls;Extended Properties=Excel 8.0"
用同样的连接串去连接Excel创建的.xls文件却没有问题,这是怎么回事?我用Excel也能打开我用程序创建的.xls文件。Extended Properties属性我改成Excel 4.0、Excel 5.0也试过了都不行。之所以选择上面的方法生成.xls文件是因为它的生成效率比较高,要比用servers组件生成的快。
str:=str+ tempQuery.Fields[i].FieldName+#9;
buffList.Add(str); while not TempQuery.Eof do
begin
str:='';
for i:=0 to TempQuery.FieldCount-1 do
str:=str+TempQuery.Fields[i].AsString+#9;
buffList.Add(str);
ProgressBar2.Position:=ProgressBar2.Position+1;
TempQuery.Next;
end;
buffList.SaveToFile('c:\Examdata.xls');但是我用ADO去连这个文件时确报错误"外部表不是预期的格式"。连接串是这样的
ADOConncetion.conncetionstring:"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=C:\Examdata.xls;Extended Properties=Excel 8.0"
用同样的连接串去连接Excel创建的.xls文件却没有问题,这是怎么回事?我用Excel也能打开我用程序创建的.xls文件。Extended Properties属性我改成Excel 4.0、Excel 5.0也试过了都不行。之所以选择上面的方法生成.xls文件是因为它的生成效率比较高,要比用servers组件生成的快。
解决方案 »
- 庆祝自己由小菜鸟变成老菜鸟。
- Camtasia Studio的实现技术
- delphi 怎么写连接 DBASE的连接字符串啊???
- 各位帮帮忙啊 关于双核与双通道对API的影响
- 在用OleContainer1打开excel 时,如何自动打开excel ,用要每次程序运行后,通过双击鼠标来打开excel
- 如果不让父类的属性出现在属性编辑器中?
- 高手请进,解决一个大文件处理的内存映射问题,跪求~~
- RealAudio在播放时,为何出现除零错误?
- DirectoryOutline如何展开节点到指点目录?
- 关于Calculated的问题,很是郁闷!!!
- 我想实现在DBGrid中单击某个单元格时,然后把ComboBox定位到这个单元格的位置,请问如何实现
- 我想用Raize里的带checkBOX的treeview做个资源管理器,希望得到帮助
连了以后怎么用呢
是一个制表符分隔的txt文件
Excel打开的时候是根据文件实际格式打开的,叫什么后缀名都可以
http://blog.joycode.com/ghj/archive/2005/01/12/42861.aspx
---------------------------------------------------------------
方案二、直接生成一个使用间隔符号隔开每一项数据的纯文本文件,但是文件的后缀是 XLS 。注意:这时候,如果你直接用Excel打开这样的文件,没问题,一切正常,但是如果你用ADO.net 读取这个文件的时候,你的链接引擎不应该是Excel,而是文本文件(Microsoft Text Driver)。也就是链接字符串不应该是
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\aa2.xls;Extended Properties=Excel 8.0;"
而应该是下面的方式:OLEDB的方式连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\11.txt;Extended Properties='text;HDR=No;FMT=TabDelimited'
ODBC的方式读TXT字符串写法:
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=C:\\11.txt;Extensions=asc,csv,tab,txt;
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\;Extended Properties="text;HDR=No;FMT=TabDelimited"ODBC的方式:
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=E:\;Extensions=asc,csv,tab,txt";Initial Catalog=E:\
读取*.txt文件没有问题把后缀改成*.xls以后
用select * from book1.xls
要报“不能更新。数据库或对象为只读”的错误
没找到具体解决办法
http://community.csdn.net/Expert/topic/4247/4247690.xml?temp=.0217554
http://community.csdn.net/Expert/topic/4247/4247690.xml?temp=.0217554