我用下面的方式生成个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组件生成的快。
解决方案 »
- Self.Context.DC 怎么编译不过(求助)
- 关于TWebBrowser.Document
- 怎么重新设置一个外部程序的窗口标题和屏蔽一些菜单相啊?
- 巨难问题,高手近来看看,谈谈高见吧,解决了得200分,不食言 200410
- 旅行社ERP项目招聘.net/Delphi程序员
- SQL 的显示语句,把ID号转换成NAME!!!!!!!!!!着急啊!
- dbedit默认只能输入4位小数,我想输入6位的?
- 请问Abstract Error
- VB里有一个LINE控件,能移动,DELPHI里怎么实现?
- 问一个窗体显示的问题????在线等
- 我想实现在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