打开任一个DBF文件显示,主要是要输出到word中,如何实现?谢谢!(100分)

  • 主题发起人 主题发起人 athene
  • 开始时间 开始时间
A

athene

Unregistered / Unconfirmed
GUEST, unregistred user!
打开任一个DBF文件显示,主要是要输出到word中,如何实现?谢谢!
DBF可能是foxpro2.5,6.0,或j dbaseIII,或是自由表,用一对话框打开,显示出来,并输出到word中,此问题一直没有完美的解决方案,故在此提出,请大家讨论。
 
你的问题主要是在什么?
dbf的显示?
dbf的显示,用odbc或ado都可以调用后显示到dbgrid的。
还是输出到word?
参看一下这个文章
http://www.91delphi.com/book/list.asp?id=147
Delphi+Word解决方案参考

 
请仔细读我的问题,主要是输出,而且是任一个DBF文件。
 
那你有没有认真看一下那篇文章呢?
输出的前提,我假设你已将该DBF打开并在DBGRID中显示出来了,这样还输不出???不可能吧?
 
你大作我都看了,你在csdn上的我也看了,DBF比较特别,与mdb不一样的。你自己可以写代码试一下。谢谢。
 
//WordApplication1:TWordApplication;
//数据库连接略;
var a,b,c,d:OleVariant;
i:integer;
begin
WordApplication1.Visible :=True;
a:='';
b:= False;
c:=wdNewBlankDocument;
d:=true;
WordApplication1.Documents.Add(a,b,c,d); //空文档
while not Table1.Eof do
begin
for i:=0 to 2 do //这里的2为字段数-1,根据数据库而定
begin
WordApplication1.ActiveDocument.Sections.Item(1).Range ;
WordApplication1.ActiveDocument.Sections.Item(1).Range.InsertParagraphAfter; //将读取的字段值插在最后 WordApplication1.ActiveDocument.Sections.Item(1).Range.InsertAfter(Table1.fields.AsVariant);
end;
Table1.next;
end;
end;
 
主要是要解决数据库连接。要考虑通用性,用对话框打开任何一个dbf文件。
 
考虑数据库连接,修改如下:
//WordApplication1:TWordApplication;

var a,b,c,d:OleVariant;
i:integer;
begin
WordApplication1.Visible :=True;
a:='';
b:= False;
c:=wdNewBlankDocument;
d:=true;
WordApplication1.Documents.Add(a,b,c,d); //空文档
OpenDialog1.Execute; //需设置文件类型
if OpenDialog1.FileName<>'' then
begin
Table1.TableName:=OpenDialog1.FileName;
Table1.Active;
Table1.Open;
Table1.First;
while not Table1.Eof do
begin
for i:=0 to Table1.FieldCount-1 do
begin
WordApplication1.ActiveDocument.Sections.Item(1).Range ;
WordApplication1.ActiveDocument.Sections.Item(1).Range.InsertParagraphAfter;
WordApplication1.ActiveDocument.Sections.Item(1).Range.InsertAfter(Table1.fields.AsVariant);
end;
Table1.next;
end;
end;
end;
 
多人接受答案了。
 
后退
顶部