急求:cxGrid导出Excel时,如何导出多个Sheet??请大虾们指教,感激!比如说cxGrid有多个View或多个Level,如何处理?没分了,最后50分,多谢!!!
解决方案 »
- 求思路:数据库系统自动检测数据更新并刷新显示
- 設置整個 程序的輸入法,請各位大俠幫幫偶,散分了。
- 跪求在QREPORT中如何得到总页数,要求详细代码。
- 请教关于滚动条的控制
- 俺不爽,散分!!!
- 简单的问题组,10+10+20+10+10+10
- 怎么样才能查到自己的上网IP地址啊???急用啊
- 请教两个菜鸟问题
- 如何实现去掉最高分,最低分的问题
- 在C/S三层结构中,如何定义服务器端的全局变量,来让所有的服务器端使用,用以控制所有服务器端的操作。
- access violation at address 00414F5B in module 'Project1.exe'
- 关于WSARecv接收包的数据不对,高手请进 满分
var
Excel,WrkBook,WrkSheet:oleVariant;
SaveDialog1:TSaveDialog;
tmp,Row,SheetCount:integer;
begin
try
Excel:=CreateOleObject('Excel.Application');
Except
if Application.MessageBox('对不起,你的机器没有安装Microsoft Excel,是否继续导出?'
+ #13#13 + '导出后在您的机器上不能直接打开,必须安装Excel到机器上才能打开!',
'注意', MB_OKCANCEL) = ID_no then
exit;
end;
SaveDialog1:=TSaveDialog.Create(aHandle);
SaveDialog1.Filter:='*.xls|(*.xls Excel文件)';
try
if SaveDialog1.Execute then
begin
WrkBook:=Excel.WorkBooks.Add;
Row:=1;
SheetCount:=1; dbSet.DisableControls;
dbSet.First;
ProBar.Max := dbSet.RecordCount;
ProBar.Position:=0;
while not dbSet.Eof do
begin
if Row=1 then
for tmp:=0 to dbSet.FieldCount-1 do
if dbSet.Fields.Fields[tmp].Visible then
Excel.WorkSheets[SheetCount].Cells[Row,tmp+1].Value:=dbSet.Fields.Fields[tmp].DisplayLabel;
inc(Row); for tmp:= 0 to dbSet.FieldCount-1 do
begin
if dbSet.Fields[tmp].Visible then
Excel.WorkSheets[SheetCount].Cells[Row,Tmp+1].value:= '''' + dbSet.Fields[tmp].AsString;
end; if Row>=50000 then
begin
SheetCount:=SheetCount+1;
Row:=0; if SheetCount>3 then
begin
WrkSheet:=WrkBook.WorkSheets[WrkBook.WorkSheets.Count];
wrkBook.WorkSheets.Add(EmptyParam,WrkSheet,1,$FFFFEFB9);
end;
end;
ProBar.Position:=ProBar.Position+1;
dbSet.Next;
end; Excel.ActiveWorkBook.SaveAs(SaveDialog1.FileName);
WrkBook.close;
Excel.Quit;
Excel:=unassigned;
Messagebox(self.Handle,Pchar('系统已经导出,请到《'+SaveDialog1.FileName+'》里查看!!!')
,'提示信息',MB_OK+MB_ICONINFORMATION);
end;
finally
SaveDialog1.Free;
dbSet.EnableControls;
end;
end;
MainFrm.ExcelApplication1.Workbooks.Add(null,0); // 加入一个workbook
MainFrm.ExcelWorkbook1.ConnectTo(MainFrm.ExcelApplication1.Workbooks[1]);// 连接Workbook
MainFrm.ExcelWorksheet1.ConnectTo(MainFrm.ExcelWorkbook1.Worksheets[3] as _Worksheet);
MainFrm.ExcelWorksheet1.Name:='第3页'; // 修改sheet名称
MainFrm.ExcelWorksheet1.ConnectTo(MainFrm.ExcelWorkbook1.Worksheets[2] as _Worksheet);
MainFrm.ExcelWorksheet1.Name:='第2页'; // 修改sheet名称
MainFrm.ExcelWorksheet1.ConnectTo(MainFrm.ExcelWorkbook1.Worksheets[1] as _Worksheet);
MainFrm.ExcelWorksheet1.Name:='第1页'; // 修改sheet名称