文件格式的转换问题(100分)

  • 主题发起人 闪闪2002
  • 开始时间

闪闪2002

Unregistered / Unconfirmed
GUEST, unregistred user!
把*.dbf格式文件转换成Excel格式文件有什么方法?
 
笨方法:
把数据库读出来,写进F1Book, 然后保存成Excel格式文件。

 
Excel有导入功能,在"文件"菜单.
就用此功能来实现.
 
To bigroute: 用程序实现把*.dbf格式文件转换成Excel格式文件
 
当然是程序,调用一下Excel的这个功能不就行了。
 
To jsxjd,请给我调用的程序代码,好吗?十万火急,多谢你了
 
To bigroute ,有程序代码吗?
 
试试利用VBA先将文件转成Excel文件。具体代码可先在Excel文件中建一相应功能的宏
(可利用录制宏实现),再利用宏编辑器即可查看相应VBA代码。可在Delphi程序中利用
ComObj,建一OLE对象使用VBA代码。
 
谢谢嘀嗒,问题已解决
 
用SqlServer2000的转换工具嘛!呵呵
 
看到100分口水都流出来了。给你一个函数把你连接DBF的数据集传到我的函数就可以了
uses ComObj;

procedure ExportToExcel(Dataset:TDataset);
var
Range,WorkBook,Sheet,Excel:variant;
CurCol,col,row:integer;
begin
Excel:=CreateOleObject('Excel.Application');
FrmWait:=TFrmWait.Create(application);
try
FrmWait.Show;
// Excel.visible:=true;
Application.ProcessMessages;
Excel.DisplayAlerts:=false;
Excel.WorkBooks.Add;
WorkBook:=Excel.WorkBooks[1];
Sheet := WorkBook.WorkSheets[1];
CurCol:=0;
Row:=4; //从第四行,第二列开始输出
for col:=1 to DataSet.FieldCount do //输出标题
if DataSet.Fields[Col-1].Visible then
begin
Sheet.Cells[Row,CurCol+2]:=DataSet.Fields[Col-1].DisplayLabel;
inc(CurCol);
end;
inc(Row); //数据从第五行开始输出

DataSet.DisableControls;
DataSet.First;
while not Dataset.Eof do
begin
CurCol:=0;
for Col:=1 to DataSet.FieldCount do
if DataSet.Fields[Col-1].Visible then
begin
Sheet.Cells[Row,CurCol+2]:=DataSet.Fields[Col-1].DisplayText;
inc(CurCol);
end;
DataSet.Next;
inc(Row);
end;

Range:=Sheet.Range['1:65536'];
Range.Verticalalignment:= -4108;//Center; //垂直中对齐
//选择画表格线的范围
Range:=Sheet.Range[Sheet.cells[4,2].Address+':'
+Sheet.cells[Row-1,CurCol+1].Address];
Range.Borders.LineStyle:=1;
Range.Font.Name:='宋体'; //设置字体和大小
Range.Font.Size:=11;

Sheet.Cells.Columns.AutoFit; //自动调整列宽
Excel.visible:=true;

finally
Dataset.EnableControls;
end;
end;
 
多人接受答案了。
 
楼上的兄弟,怎么把这个xls保存成文件啊?!
 
顶部