数据导出到Excel中遇到的奇怪问题,在线等待(100分)

  • 主题发起人 主题发起人 linjing27
  • 开始时间 开始时间
L

linjing27

Unregistered / Unconfirmed
GUEST, unregistred user!
用同样的方法将DBGrid1,DBGrid2中的数据导出到Excel中(用CreateOLEObject)
DBGrid1导出成功,而DBGrid2导出失败,且DBGrid2导出时能启动Excel程序并生成表头等,就是不能将数据写入
有没有高人帮忙指点迷津啊?
 
可能是初始化的问题,确定导入时,dbgrid2的记录指针是否在first,回去我再试试给你更准确的答复
 
“dbgrid2的记录指针是否在first”?这个没有关系吧,我试过没有问题啊
 
哦,是这样,我作过导出到EXCEL,是从表中直接导出到EXCEL,没有出现这个问题,应该不难解决,回头我再试试,一定能够解决的.
 
procedure ExportToExcel(Const ADBGrid: TDBGrid);
var
i, j: Integer;
tmpExcelApp: TExcelApplication;
tmpExcelWorkbook: TExcelWorkbook;
tmpExcelWorksheet: TExcelWorksheet;
begin
tmpExcelApp := TExcelApplication.Create(nil);
with tmpExcelApp do
begin
Disconnect;
Visible[0] := True;
SheetsInNewWorkbook[0] := 1;
Workbooks.Add(Null, 1);
end;

tmpExcelWorkbook := TExcelWorkbook.Create(nil);
tmpExcelWorkbook.Disconnect;
tmpExcelWorkbook.ConnectTo(_Workbook(tmpExcelApp.Workbooks[1]));

tmpExcelWorksheet := TExcelWorksheet.Create(nil);
with tmpExcelWorksheet do
begin
Disconnect;
ConnectTo(tmpExcelApp.Worksheets[1] As _Worksheet);
for i := 1 to ADBGrid.FieldCount do
Cells.Item[1, i] := ADBGrid.Columns[i-1].Title.Caption;

ADBGrid.DataSource.DataSet.First;
for j := 1 to ADBGrid.DataSource.DataSet.RecordCount do
begin
for i := 1 to ADBGrid.FieldCount do
Cells.Item[j+1, i] := ADBGrid.DataSource.DataSet.FieldValues[ADBGrid.Columns[i-1].FieldName];
ADBGrid.DataSource.DataSet.Next;
end;
end;

tmpExcelWorksheet.Disconnect;
tmpExcelWorkbook.Disconnect;
tmpExcelApp.Disconnect;
FreeAndNil(tmpExcelWorksheet);
FreeAndNil(tmpExcelWorkbook);
FreeAndNil(tmpExcelApp);
end;
 
不会吧
是不是同时导出啊,那样的话要处理一哈
 
不是同时导出
 
我觉得用Delphi的IDE在运行的时候DEBUG一下就很容易发现问题了。
在这里问这种没有头绪的问题,估计难回答。没有context,很难判断。
或者你把Source Code贴出来大家看看。
 
http://www5.skycn.com/soft/29751.html
这项技术可较好地解决你的问题
QQ:292044357
 
后退
顶部