首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

小弟我找的EXL导出程序,导出成功了,不过还是执行了EXPECT后面的语句

2013-04-20 
我找的EXL导出程序,导出成功了,不过还是执行了EXPECT后面的语句//EXL导出过程procedure Tfrm_ksjj.Excel_l

我找的EXL导出程序,导出成功了,不过还是执行了EXPECT后面的语句
//EXL导出过程
procedure Tfrm_ksjj.Excel_lv(lvpt:tlistview);
var XL,SHEET:variant;
    SfileName:string;
    j,i:integer;
BEGIN
try
  if not  savedialog1.Execute then exit;
  sfilename:=savedialog1.FileName ;
  //创建一个EXCEL
  XL:=CreateOleObject('Excel.Application');
  XL.WorkBooks.add;
  //设SHEETS1为活动页
  SHEET:=XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1];
  //设置列宽,这个可以根据实际情况修改
  XL.rANGE['A1','A1'].cOLUMNwIDTH:=10;
  XL.rANGE['B1','B1'].cOLUMNwIDTH:=10;
  XL.rANGE['C1','C1'].cOLUMNwIDTH:=10;
  XL.rANGE['D1','D1'].cOLUMNwIDTH:=10;
  XL.rANGE['E1','E1'].cOLUMNwIDTH:=10;
  XL.rANGE['F1','F1'].cOLUMNwIDTH:=10;
  XL.rANGE['G1','G1'].cOLUMNwIDTH:=10;
  XL.rANGE['H1','H1'].cOLUMNwIDTH:=10;
  XL.rANGE['I1','I1'].cOLUMNwIDTH:=10;
  XL.rANGE['J1','J1'].cOLUMNwIDTH:=10;
  XL.rANGE['K1','K1'].cOLUMNwIDTH:=10;
  XL.rANGE['L1','L1'].cOLUMNwIDTH:=10;
  //第一行,将LISTVIEW的标题先导出到EXCEL
  for i:=1 to lvpt.Columns.Count  do
     sheet.cells[1,i]:=lvpt.Columns[i-1].Caption ;
  //将LISTVEW里各行列的内容导出
  for j:=0 to lvgr.Items.Count -1 do
    for i:=1 to lvgr.Columns.Count do
     begin   //由于将数字字符串如00011导出到EXCEL时,它会自动转成数值11,
             //所以要在前面加'号,定义为字符串.
      if i=1 then sheet.cells[j+2,i]:=''+lvpt.Items[j].Caption
             else sheet.cells[j+2,i]:=''+lvpt.Items[j].SubItems [i-2];
     end;
  //写入EXCEL文件
  XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1].SaveAs(SFilename);
  XL.Quit;
except
  messagebox(handle,'对不起,您可能没有安装Excel或文件目录错误!','错误',MB_OK+MB_ICONSTOP);
  XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1].SaveAs(SFilename);
  XL.Quit;
end;
end;
//执行EXL导出
procedure Tfrm_ksjj.BitBtn1Click(Sender: TObject);
begin
  excel_lv(lvgr);
end;

我找的EXL导出程序,EXL成功导出了,不过还是执行了EXPECT后面的语句提示“对不起,您可能没有安装Excel或文件目录错误!”…… 这是为啥米呢
[解决办法]
修改成如下,看下报什么错。


//EXL絳堤徹最
procedure Tfrm_ksjj.Excel_lv(lvpt:tlistview);
var XL,SHEET:variant;
    SfileName:string;
    j,i:integer;
begin
  if not  savedialog1.Execute then exit;
  sfilename:=savedialog1.FileName ;
  //斐膘珨跺EXCEL
  try
    XL:=CreateOleObject('Excel.Application');
  except
    messagebox(handle,'勤祥?ㄛ蠟褫夔羶衄假蚾Excel麼恅璃醴翹渣昫!','渣昫',MB_OK+MB_ICONSTOP);
    exit;
  end;

  try
    XL.WorkBooks.add;
    //扢SHEETS1峈魂雄珜
    SHEET:=XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1];
    //扢离蹈遵,涴跺褫眕跦擂妗暱?錶党蜊
    XL.rANGE['A1','A1'].cOLUMNwIDTH:=10;
    XL.rANGE['B1','B1'].cOLUMNwIDTH:=10;
    XL.rANGE['C1','C1'].cOLUMNwIDTH:=10;


    XL.rANGE['D1','D1'].cOLUMNwIDTH:=10;
    XL.rANGE['E1','E1'].cOLUMNwIDTH:=10;
    XL.rANGE['F1','F1'].cOLUMNwIDTH:=10;
    XL.rANGE['G1','G1'].cOLUMNwIDTH:=10;
    XL.rANGE['H1','H1'].cOLUMNwIDTH:=10;
    XL.rANGE['I1','I1'].cOLUMNwIDTH:=10;
    XL.rANGE['J1','J1'].cOLUMNwIDTH:=10;
    XL.rANGE['K1','K1'].cOLUMNwIDTH:=10;
    XL.rANGE['L1','L1'].cOLUMNwIDTH:=10;
    //菴珨俴,蔚LISTVIEW腔梓枙珂絳堤善EXCEL
    for i:=1 to lvpt.Columns.Count  do
       sheet.cells[1,i]:=lvpt.Columns[i-1].Caption ;
    //蔚LISTVEW爵跪俴蹈腔囀?絳堤
    for j:=0 to lvgr.Items.Count -1 do
      for i:=1 to lvgr.Columns.Count do
       begin   //蚕衾蔚杅趼趼睫揹?00011絳堤善EXCEL奀,坳頗赻雄蛌傖杅硉11,
               //垀眕猁婓?醱樓'瘍,隅砱峈趼睫揹.
        if i=1 then sheet.cells[j+2,i]:=''+lvpt.Items[j].Caption
               else sheet.cells[j+2,i]:=''+lvpt.Items[j].SubItems [i-2];
       end;
    //迡?EXCEL恅璃
    XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1].SaveAs(SFilename);
    XL.Quit;
  except on e: exception do
    begin
      messagebox(handle, e.message,'渣昫',MB_OK+MB_ICONSTOP);
      XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1].SaveAs(SFilename);
      XL.Quit;
    end;
  end;
end;

热点排行