d; End; //如果存在 I_XMLDocument.Active :=false; I_XMLDocument.LoadFromFile(ExtractFilePath(Application.ExeName)+'test.xml'); I_XMLDocument.Active:=true; I_XMLDocument.CleanupInstance;
//先创建头文件 with I_XMLDocument.XML do begin Add(' ');
Add('<'+I_XmlFileTile+'>'); Add(''+I_XMLFILETILE+'>'); end; I_XMLDocument.Active := true; //if FileExists(xlsFileName) then //deletefile(xlsFileName); I_XMLDocument.SaveToFile(ExtractFilePath(Application.ExeName)+'test.xml');
Try //对数据集做循环,然后按 Grid 把每个属性加进入 If UpperCase(pObjectSource.ClassName) = 'TDBGRID' Then Begin //根据传入的 Sql 进行
查询,加上导出的数据 FuncQueryOpen(I_Query,I_Sql); If Not I_Query.IsEmpty Then Begin I_Query.DisableControls; try I_Query.First; While Not I_Query.Eof Do Begin //加节点操作 aNode :=I_XMLDocument.DocumentElement .AddChild(I_XmlRecTile); For ColNumber:=0 To TDBGrid(pObjectSource).Columns.Count-1 Do Begin Try //加数据,第一个参数为属性标题数值,第 3 个为
//该属性对应的数值 aNode.SetAttributeNS(TDBGrid(pObjectSource) .Columns.Items[ColNumber].Title.Caption, '',I_Query.FieldByName(TDBGrid(pObjectSource). Columns.Items[ColNumber].FieldName).AsString); Except
End; End; I_Query.Next; End; finally I_Query.EnableControls; end; End; End;
I_XMLDocument.SaveToFile(xlsFileName); // eclApp:=Unassigned; V_Msg:='数据导出成功,存放在'+xlsFileName; MessageDlg(V_Msg,mtInformation, [mbYes], 0); Result:=True; except MessageDlg('不能正确操作该文件'+#13+ '可能是该文件已被其他
程序打开, 或系统错误' ,mtInformation, [mbYes], 0); ExcelSaveDialog.free; ExcelSaveDialog :=nil; exit;
end;
end; 2://xls begin //判断填写的文件是否带扩展名,如果没有扩展名,
系统自动增加扩展名 //填写的文件名未带扩展名,系统自动增加扩展名 If Pos('.xls',LowerCase(ExcelSaveDialog.FileName))=0 Then xlsFileName:=ExcelSaveDialog.FileName+'.xls' Else //填写的文件名自带扩展名,则系统不自动增加扩展名。 xlsFileName:=ExcelSaveDialog.FileName;
//判断文件是否存在,如果文件存在,则提示用户是否复盖。 If FileExists(xlsFileName) Then Begin V_Msg:=xlsFileName+'已经存在,'; //提示用户是否复盖原来文件,如
果不复盖则退出该函数。 If MessageDlg(V_Msg+#13+'确认要替换文件吗?',mtInformation, [mbYes,mbNo], 0)=mrNo then begin ExcelSaveDialog.free; ExcelSaveDialog :=nil; Exit; end Else //删除文件,如果失败,则提示错误信息并退出该函数。 If Not DeleteFile(xlsFileName) Then
begin MessageDlg('不能正确操作该文件'+#13+ '可能是该文件已被其他程序打开, 或系统错误' ,mtInformation, [mbYes], 0); ExcelSaveDialog.free; ExcelSaveDialog :=nil; exit; end; End;
Try eclApp:=CreateOleObject('Excel.Application'); //WorkBook:=CreateOleobject('Excel.Sheet'); Except MessageDlg('打开 Microsoft Excel 出错!' ,mtInformation, [mbYes], 0); ExcelSaveDialog.free; ExcelSaveDialog :=nil; Exit; End;
Try //WorkBook:=eclApp.workBooks.Add; eclApp.workBooks.Add; WorkBook :=eclApp.WorkBooks[1].WorkSheets[1]; WorkBook.Cells(1,1):=pReportTitle;
If UpperCase(pObjectSource.ClassName) = 'TDBGRID' Then Begin
{将 DBGrid 列标题名写入 Excel 文件中} For ColNumber:=0 To TDBGrid(pObjectSource).Columns.Count-1 Do WorkBook.Cells(2,ColNumber+1):= TDBGrid