利用comobj操控Excel二维图 ( 积分: 50 )

  • 主题发起人 主题发起人 jackson_wu
  • 开始时间 开始时间
J

jackson_wu

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现用comobj操控Excel二维图,希望在指定的Sheet、指定位置、指定类型,网上的资料都是用delphi控制Excel<br>我录制了Excel宏&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;Range(&quot;A1:K3&quot;).Select<br>&nbsp;&nbsp;&nbsp;&nbsp;Charts.Add<br>&nbsp;&nbsp;&nbsp;&nbsp;ActiveChart.ChartType&nbsp;=&nbsp;xlColumnClustered<br>&nbsp;&nbsp;&nbsp;&nbsp;ActiveChart.SetSourceData&nbsp;Source:=Sheets(&quot;Sheet2&quot;).Range(&quot;A1:K3&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;ActiveChart.Location&nbsp;Where:=xlLocationAsObject,&nbsp;Name:=&quot;Sheet2&quot;<br>我照这样方法做了<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel.worksheets[2].Activate;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel.ActiveSheet.Range['A1:K3'].Select;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel.ActiveSheet.Charts.Add;<br>不是我想要的结果,有谁知道比较详细的Comobj方法?或指点我一下,我比较嫩。。。<br><br>后来加了一句&nbsp;&nbsp;myexcel.ActiveChart.Location('xlLocationAsObject','Sheet2');&nbsp;执行报告&nbsp;Project&nbsp;WBL_Report.exe&nbsp;raised&nbsp;exception&nbsp;class&nbsp;EAccessViolation&nbsp;with&nbsp;message&nbsp;'Access&nbsp;violation&nbsp;at&nbsp;address&nbsp;00485A8B&nbsp;in&nbsp;module&nbsp;'Wbl_Report.exe',Read&nbsp;of&nbsp;address&nbsp;000000000',Process&nbsp;stopped.Use&nbsp;Step&nbsp;or&nbsp;Run&nbsp;to&nbsp;continue.<br>修改成这样<br>myexcel.ActiveChart.Location(xlLocationAsObject,'Sheet2');<br>编译不通过.
 
应当先把Sheet2设置为活动页
 
myexcel.worksheets[2].Activate;<br>为一句就是把sheet2设成活动的,有知道的人再帮我想想办法吧
 
newsmile<br>myexcel.worksheets[2].Activate;<br>为一句就是把sheet2设成活动的,有知道的人再帮我想想办法吧
 
是不是没有use&nbsp;excel2000导致xlLocationAsObject常量找不到?<br>看vba帮助这样写是对的<br>myexcel.ActiveChart.Location(xlLocationAsObject,'Sheet2');<br>附vba帮助<br>Location&nbsp;方法<br>参阅应用于示例特性移动图表的位置。Chart&nbsp;对象。<br>expression.Location(Where,&nbsp;Name)<br>expression&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;必需。该表达式返回“应用于”列表中的对象之一。<br>Where&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XlChartLocation&nbsp;类型,必需。图表移动的目标位置。<br>XlChartLocation&nbsp;可为以下&nbsp;XlChartLocation&nbsp;常量之一。&nbsp;<br>xlLocationAsNewSheet&nbsp;<br>xlLocationAsObject&nbsp;<br>xlLocationAutomatic&nbsp;<br>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Variant&nbsp;类型,可选。如果&nbsp;Where&nbsp;参数为&nbsp;xlLocationAsObject,则本参数为必需。如果&nbsp;Where&nbsp;参数为&nbsp;xlLocationAsObject,则本参数指定嵌入该图表的工作表的名称。如果&nbsp;Where&nbsp;参数为&nbsp;xlLocationAsNewSheet,则本参数指定新工作表的名称。<br>示例<br>本示例将嵌入图表移至新图表“Monthly&nbsp;Sales”。<br>Worksheets(1).ChartObjects(1).Chart.Location&nbsp;xlLocationAsNewSheet,&nbsp;&quot;Monthly&nbsp;Sales&quot;
 
newsmile<br>你好<br>我试了,use&nbsp;excel2000还是这样.<br>myexcel.ActiveChart.Location(xlLocationAsObject,'Sheet2');<br>myexcel.ActiveChart.Location('xlLocationAsObject','Sheet2');<br>能不能再想想办法?
 
要不您把程序片段贴出来,也许别的地方有问题吧或者写成这样看行不行<br>myexcel.ChartObjects.items(1).Chart.Location(xlLocationAsObject,'Sheet2');
 
谢谢,程序写得不太好<br>unit&nbsp;NdateSal;<br>interface<br>uses<br>&nbsp;&nbsp;Windows,&nbsp;Messages,&nbsp;SysUtils,&nbsp;Variants,&nbsp;Classes,&nbsp;Graphics,&nbsp;Controls,&nbsp;Forms,<br>&nbsp;&nbsp;Dialogs,&nbsp;StdCtrls,&nbsp;GridsEh,&nbsp;DBGridEh,&nbsp;DB,&nbsp;ADODB,comobj,excel2000;<br>type<br>&nbsp;&nbsp;TFrmNdateCal&nbsp;=&nbsp;class(TForm)<br>&nbsp;&nbsp;&nbsp;&nbsp;ADOQuery1:&nbsp;TADOQuery;<br>&nbsp;&nbsp;&nbsp;&nbsp;ADOQuery2:&nbsp;TADOQuery;<br>&nbsp;&nbsp;&nbsp;&nbsp;DataSource1:&nbsp;TDataSource;<br>&nbsp;&nbsp;&nbsp;&nbsp;DBGridEh1:&nbsp;TDBGridEh;<br>&nbsp;&nbsp;&nbsp;&nbsp;Button1:&nbsp;TButton;<br>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;Button1Click(Sender:&nbsp;TObject);<br>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;FormCreate(Sender:&nbsp;TObject);<br>&nbsp;&nbsp;private<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Private&nbsp;declarations&nbsp;}<br>&nbsp;&nbsp;public<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Public&nbsp;declarations&nbsp;}<br>&nbsp;&nbsp;end;<br>var<br>&nbsp;&nbsp;FrmNdateCal:&nbsp;TFrmNdateCal;<br>implementation<br>uses&nbsp;RePublice;<br>{$R&nbsp;*.dfm}<br>procedure&nbsp;TFrmNdateCal.Button1Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;a1,a2,a3,a4,a5,a6,a7,a8,a9,a10:integer;<br>&nbsp;&nbsp;b1,b2,b3,b4,b5,b6,b7,b8,b9,b10:string;<br>&nbsp;&nbsp;c1,c2,c3,c4,c5,c6,c7,c8,c9,c10:integer;<br>&nbsp;&nbsp;myexcel:variant;<br>&nbsp;&nbsp;workbook:olevariant;<br>&nbsp;&nbsp;worksheet:olevariant;<br>&nbsp;&nbsp;j,k,m:integer;<br>begin<br>&nbsp;&nbsp;ADOQuery1.Active:=False;<br>&nbsp;&nbsp;ADOQuery2.Active:=False;<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;ADOQuery1.Active:=true;<br>&nbsp;&nbsp;&nbsp;&nbsp;ADOQuery2.Active:=true;<br>&nbsp;&nbsp;&nbsp;&nbsp;ADOQuery1.First;<br>&nbsp;&nbsp;&nbsp;&nbsp;ADOQuery2.First;<br>&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;not&nbsp;self.ADOQuery1.Eof&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=10)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b1:='10'+StrDay+Stryx;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=20)&nbsp;and&nbsp;(self.ADOQuery1.Fields[8].Value&gt;10)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b2:='10'+StrDay;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=30)&nbsp;and&nbsp;(self.ADOQuery1.Fields[8].Value&gt;20)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b3:='20'+StrDay;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=40)&nbsp;and&nbsp;(self.ADOQuery1.Fields[8].Value&gt;30)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b4:='30'+StrDay;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=50)&nbsp;and&nbsp;(self.ADOQuery1.Fields[8].Value&gt;40)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a5);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b5:='40'+StrDay;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=60)&nbsp;and&nbsp;(self.ADOQuery1.Fields[8].Value&gt;50)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a6);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b6:='50'+StrDay;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=70)&nbsp;and&nbsp;(self.ADOQuery1.Fields[8].Value&gt;60)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a7);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b7:='60'+StrDay;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=80)&nbsp;and&nbsp;(self.ADOQuery1.Fields[8].Value&gt;70)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a8);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b8:='70'+StrDay;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&lt;=90)&nbsp;and&nbsp;(self.ADOQuery1.Fields[8].Value&gt;80)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a9);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b9:='80'+StrDay;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery1.Fields[8].Value&gt;90)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(a10);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b10:='90'+StrDay+Strys;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.ADOQuery1.Next;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>//指定交货日<br>&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;not&nbsp;self.ADOQuery2.Eof&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=10)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=20)&nbsp;and&nbsp;(self.ADOQuery2.Fields[8].Value&gt;10)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=30)&nbsp;and&nbsp;(self.ADOQuery2.Fields[8].Value&gt;20)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=40)&nbsp;and&nbsp;(self.ADOQuery2.Fields[8].Value&gt;30)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=50)&nbsp;and&nbsp;(self.ADOQuery2.Fields[8].Value&gt;40)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c5);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=60)&nbsp;and&nbsp;(self.ADOQuery2.Fields[8].Value&gt;50)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c6);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=70)&nbsp;and&nbsp;(self.ADOQuery2.Fields[8].Value&gt;60)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c7);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=80)&nbsp;and&nbsp;(self.ADOQuery2.Fields[8].Value&gt;70)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c8);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&lt;=90)&nbsp;and&nbsp;(self.ADOQuery2.Fields[8].Value&gt;80)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c9);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(self.ADOQuery2.Fields[8].Value&gt;90)&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(c10);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.ADOQuery2.Next;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADOQuery1.First;<br>&nbsp;&nbsp;&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel:=createoleobject('excel.application');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel.application.workbooks.add;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workbook:=myexcel.application.workbooks[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet:=workbook.worksheets.item[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;j:=0&nbsp;to&nbsp;DBGridEh1.FieldCount-1&nbsp;do&nbsp;&nbsp;&nbsp;//写表头<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,j+1]:=DBGridEh1.Columns[j].Title.Caption&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;showmessage(StrEExportToExcel);<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;k:=2;<br>&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;not&nbsp;ADOQuery1.Eof&nbsp;&nbsp;&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;j:=0&nbsp;to&nbsp;ADOQuery1.FieldCount-1&nbsp;do&nbsp;&nbsp;&nbsp;&nbsp;//写表体<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;ADOQuery1.Fields[j].DataType=ftstring&nbsp;then&nbsp;&nbsp;//判断字段类型<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[k,j+1].NumberFormatLocal&nbsp;:='@';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[k,j+1]:=ADOQuery1.Fields[j].AsString;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(k);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADOQuery1.Next;<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;&nbsp;worksheet:=workbook.worksheets.item[2];<br>&nbsp;&nbsp;&nbsp;m:=1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=StrDate;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=Strhopeday;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=StrEInput;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b3;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a3;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c3;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b4;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a4;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c4;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b5;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a5;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c5;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b6;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a6;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c6;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b7;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a7;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c7;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b8;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a8;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c8;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b9;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a9;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c9;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inc(m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[1,m]:=b10;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[2,m]:=a10;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;worksheet.cells[3,m]:=c10;<br>************************************************************************<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel.worksheets[2].Activate;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel.ActiveSheet.Range['A1:K3'].Select;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel.ActiveChart.Location(xlLocationAsObject,'Sheet2');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myexcel.Charts.Add;<br>***********************************************************************<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;showmessage(StrhopedateE);<br>&nbsp;end;<br>&nbsp;self.Close;<br>&nbsp;myexcel.application.visible:=True;<br>end;<br>end.
 
恕我直言,您的程序确实有点乱,我给您一个完整的例子。<br>unit&nbsp;Unit1;<br><br>interface<br><br>uses<br>&nbsp;&nbsp;Windows,&nbsp;Messages,&nbsp;SysUtils,&nbsp;Variants,&nbsp;Classes,&nbsp;Graphics,&nbsp;Controls,&nbsp;Forms,<br>&nbsp;&nbsp;Dialogs,&nbsp;comobj,&nbsp;excel2000,&nbsp;StdCtrls;<br><br>const&nbsp;xlPie&nbsp;=&nbsp;5;<br>&nbsp;&nbsp;xlColumns&nbsp;=&nbsp;2;<br>&nbsp;&nbsp;xlLocationAsObject&nbsp;=&nbsp;2;<br><br>type<br>&nbsp;&nbsp;TForm1&nbsp;=&nbsp;class(TForm)<br>&nbsp;&nbsp;&nbsp;&nbsp;Button1:&nbsp;TButton;<br>&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;Button1Click(Sender:&nbsp;TObject);<br>&nbsp;&nbsp;private<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Private&nbsp;declarations&nbsp;}<br>&nbsp;&nbsp;public<br>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;Public&nbsp;declarations&nbsp;}<br>&nbsp;&nbsp;end;<br><br>var<br>&nbsp;&nbsp;Form1:&nbsp;TForm1;<br><br>implementation<br><br>{$R&nbsp;*.dfm}<br><br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;Excel_app,&nbsp;Excel_workbook:&nbsp;OleVariant;<br>&nbsp;&nbsp;i:&nbsp;integer;<br>&nbsp;&nbsp;H:&nbsp;string;<br>begin<br>&nbsp;&nbsp;Excel_app&nbsp;:=&nbsp;createOleObject('Excel.application');<br>&nbsp;&nbsp;Excel_app.visible&nbsp;:=&nbsp;true;<br>&nbsp;&nbsp;Excel_workbook&nbsp;:=&nbsp;Excel_app.WorkBooks.Add;&nbsp;//会送给你3个sheet<br>&nbsp;&nbsp;for&nbsp;i&nbsp;:=&nbsp;1&nbsp;to&nbsp;10&nbsp;do&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;H&nbsp;:=&nbsp;'A'&nbsp;+&nbsp;IntTostr(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;Excel_workbook.activesheet.Range[H].value&nbsp;:=&nbsp;i;&nbsp;//填你自己的数据<br>&nbsp;&nbsp;end;<br>&nbsp;&nbsp;Excel_workbook.Charts.Add;<br>&nbsp;&nbsp;Excel_workbook.ActiveChart.ChartType&nbsp;:=&nbsp;xlPie;&nbsp;//指定图表类型<br>&nbsp;&nbsp;Excel_workbook.ActiveChart.SetSourceData(Excel_workbook.Sheets['Sheet1'].Range['A1:A10'],&nbsp;xlColumns);&nbsp;//指定用于作图的数据区域<br>&nbsp;&nbsp;Excel_workbook.ActiveChart.Location(xlLocationAsObject,&nbsp;'Sheet2');&nbsp;//指定图表的位置<br>&nbsp;&nbsp;Excel_workbook.ActiveChart.HasTitle&nbsp;:=&nbsp;False;<br>&nbsp;&nbsp;Excel_app&nbsp;:=&nbsp;null;<br>end;<br><br>end.
 
newsmile<br>非常感谢,问题解决了.<br>我做的这个程序主要进行判断的地方比较多,看起是很乱.
 
后退
顶部