大哥們:
請問有什麼又快又好的方法可以把dbrid的數據轉成excel,如果有第三方控件的話請發[email protected]
請問有什麼又快又好的方法可以把dbrid的數據轉成excel,如果有第三方控件的話請發[email protected]
解决方案 »
- 高分求教! 请问FastReport 2.7为什么没有了TfrPrintGrid控件? 要打印Grid的内容有什么好方法?
- 还是ocx的注册问题
- 求教大家DrawGrid的两个小问题
- 请问字符宽度与窗体宽度之间的换算关系?即Length('myString')与From1.Width两种不同计量之间的换算??
- Procedure pointer types are always incompatible with method pointer types. Th
- 终于能进CSDN论坛了,散分,散分!
- 有谁知道天网核新的数据格式吗?
- 请教关于回调函数的问题?
- 时间问题?
- 高分求解:请各位大虾指教,雅虎通以及3721的网络书签是通过何种方式实现与WEB数据库交换数据的?
- 系统通过BDE连接是弹出密码提示框
- 如何使用BlockRead把数据读到动态数组中?
如果是简单的导出很简单的
我给你一个d语言的procedure CopyDbDataToExcel(Target: TDbgrid;sheetname:string;filename:string);
var
iCount, jCount: Integer;
XLApp: Variant;
Sheet: Variant;
begin
Screen.Cursor := crHourGlass;
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
VarClear(XLApp);
end;
//通过ole创建Excel对象
try
XLApp := CreateOleObject('Excel.Application');
except
Screen.Cursor := crDefault;
Exit;
end;
XLApp.WorkBooks.Add[filename]; //你要把数据放在那里
XLApp.WorkBooks[1].WorkSheets[1].Name := sheetname;
Sheet := XLApp.Workbooks[1].WorkSheets[XLApp.WorkBooks[1].WorkSheets[1].Name];
if not Target.DataSource.DataSet.Active then
begin
Screen.Cursor := crDefault;
Exit;
end;
Target.DataSource.DataSet.first;
//ExcelWorkSheet1.Cells.NumberFormat :='@'for iCount := 0 to Target.Columns.Count - 1 do
begin
Sheet.cells[1, iCount + 1] := Target.Columns.Items[iCount].Title.Caption;
end;
jCount := 1;
while not Target.DataSource.DataSet.Eof do
begin
for iCount := 0 to Target.Columns.Count - 1 do
begin
Sheet.cells[jCount + 1, iCount + 1] := Target.Columns.Items[iCount].Field.AsString;
end;
Inc(jCount);
Target.DataSource.DataSet.Next;
end;
XlApp.Visible := True;
Screen.Cursor := crDefault;
end;
procedure CopyDbDataToExcel(Target: TDbgrid;sheetname:string;filename:string);
这些是传入函数