if OpenDialog1.Execute then begin try v:= CreateOleObject('Excel.Application'); v.Workbooks.Open(OpenDialog1.FileName); Sheet:=v.Workbooks[1].WorkSheets[1]; Sheet.Select; v.Visible:=false; Sheet.Columns[4].NumberFormatLocal:='@';//将第4列改为文本属性 Sheet.Columns[5].NumberFormatLocal:='@';//将第5列改为文本属性 Sheet.Columns[6].NumberFormatLocal:='@';//将第6列改为文本属性 //数据导出....... finally Showmessage('初始化Excel失败,可能没装Excel,或者其他错误;请重起再试。'); v.DisplayAlerts:=false; v.Quit; exit; end; Application.Restore; Application.BringToFront; end; 广州-广州佬(190814570) 16:33:28 广州-流氓熊猫 没叫你在excel里面使用语句,是用delphi使用语句改变excel中那列的属性,导出数据后不存盘关闭, 广州-广州佬(190814570) 16:34:01 这样,你的excel表就没被改过一样了呀! 广州-广州佬(190814570) 16:46:32 关于宏的问题,是为了说明,在delphi中怎么用语句: Sheet.Columns[4].NumberFormatLocal:='@'; 而已 广州-广州佬(190814570) 16:48:02 这里的“NumberFormatLocal:='@';”方法,是因观察宏而得知。