delphi dbgrideh部分导出excel出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi dbgrideh部分导出excel出错相关的知识,希望对你有一定的参考价值。

procedure TForm1.btnPartExportClick(Sender: TObject);
var
pExpClass:TDBGridEhExportClass; //导出文件类型
pExt:string ; //导出文件扩展名
pExpFile:string; //导出文件路径及文件名称
begin
SaveDialog1.FileName := '';
if (ActiveControl is TDBGridEh) then
if SaveDialog1.Execute then begin case SaveDialog1.FilterIndex of 1: begin pExpClass := TDBGridEhExportAsText; pExt := 'txt'; end; 2: begin pExpClass := TDBGridEhExportAsCSV; pExt := 'csv'; end; 3: begin pExpClass := TDBGridEhExportAshtml; pExt := 'htm'; end; 4: begin pExpClass := TDBGridEhExportAsRTF; pExt := 'rtf'; end; 5: begin pExpClass := TDBGridEhExportAsXLS; pExt := 'xls'; end; else pExpClass := nil; pExt := ''; end; if pExpClass <> nil then begin pExpFile:= trim(SaveDialog1.FileName); if UpperCase(Copy(pExpFile,Length(pExpFile)-2,3)) <> UpperCase(pExt) then pExpFile := pExpFile + '.' + pExt; SaveDBGridEhToExportFile(pExpClass,TDBGridEh(ActiveControl),pExpFile,False); X_pMsg:='The data have saved as '+pExpFile; stbForm.Panels[0].Text:=X_pMsg; MessageDlg(x_pMsg,mtInformation,[mbOk],0); end; end;end;//错误信息[Error] Unit1.pas(147): Undeclared identifier: 'X_pMsg' [Error] Unit1.pas(148): Undeclared identifier: 'stbForm' [Error] Unit1.pas(148): Missing operator or semicolon [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

X_pMsg 参数未定义? 在var 下 加入 X_pMsg:string; 试试追问

Undeclared identifier: 'stbForm' ??

追答

把stbForm 改为form1试试

追问

报错

追答

stbForm.Panels[0].Text:=X_pMsg; 这整句都 // 掉

参考技术A 你应该是要在状态栏上显示,你看看状态栏是否已经加入了panels

Delphi Cxgrid怎么有选择的导出到Excel

参考技术A 首先在Uses处加上ComObjprocedureTForm1.Button1Click(Sender:TObject);varh,k:integer;Excelid:OleVariant;s:string;begintryExcelid:=CreateOLEObject('Excel.Application');exceptApplication.MessageBox('Excel没有安装!','提示信息',MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);Exit;end;tryADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*fromjj_department');ADOQuery1.Open;k:=ADOQuery1.RecordCount;Excelid.Visible:=True;Excelid.WorkBooks.Add;Excelid.worksheets[1].range['A1:c1'].Merge(True);Excelid.WorkSheets[1].Cells[1,1].Value:='部门编码表';Excelid.worksheets[1].Range['a1:a1'].HorizontalAlignment:=$FFFFEFF4;Excelid.worksheets[1].Range['a1:a1'].VerticalAlignment:=$FFFFEFF4;Excelid.WorkSheets[1].Cells[2,1].Value:='组别编号';Excelid.WorkSheets[1].Cells[2,2].Value:='公司编号';Excelid.WorkSheets[1].Cells[2,3].Value:='组别名称';Excelid.worksheets[1].Range['A1:c1'].Font.Name:='宋体';Excelid.worksheets[1].Range['A1:c1'].Font.Size:=9;Excelid.worksheets[1].range['A1:c2'].font.bold:=true;Excelid.worksheets[1].Range['A2:c2'].Font.Size:=9;Excelid.worksheets[1].Range['A2:c2'].HorizontalAlignment:=$FFFFEFF4;Excelid.worksheets[1].Range['A2:c2'].VerticalAlignment:=$FFFFEFF4;h:=3;ADOQuery1.First;whilenotADOQuery1.EofdobeginExcelid.WorkSheets[1].Cells[h,1].Value:=Adoquery1.FieldByName('Fdept_id').AsString;Excelid.WorkSheets[1].Cells[h,2].Value:=Adoquery1.FieldByName('Ffdept_id').AsString;Excelid.WorkSheets[1].Cells[h,3].Value:=Adoquery1.FieldByName('Fdept_name').AsString;Inc(h);Adoquery1.Next;end;s:='A2:f'+IntToStr(k+2);Excelid.worksheets[1].Range[s].Font.Name:='宋体';Excelid.worksheets[1].Range[s].Font.size:=9;Excelid.worksheets[1].Range[s].Borders.LineStyle:=1;Excelid.Quit;exceptApplication.MessageBox('导入数据出错!请检查文件的格式是否正确!','提示信息',MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);end;MessageBox(GetActiveWindow(),'EXCEL数据导出成功!','提示信息',MB_OK+MB_ICONWARNING);end;

以上是关于delphi dbgrideh部分导出excel出错的主要内容,如果未能解决你的问题,请参考以下文章

Delphi DBGridEH查询出内容之后,自动执行选中点击第一行的内容动作.

delphi 把EXCEL数据导入到DBGRIDEH

delphi DBgridEh多行单元格如何实现~急!!

delphi的dbgrideh中有个区域选中数据的功能。怎样才能知道 选中区域的最上面的行和最下面的行?

delphi dbgrideh 点击一行数据行是,在第一行数据行上面出现一行显示我点击的数据

delphi DBGridEh 删除指定列