delphi 用Tchart画的柱状图怎么导出到Excel? 不要保存为图片在复制到excel 如题就像这样的柱状图 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果不保存图片,那就不是转移柱状图的问题,而是怎么把这个柱状图的数据提取出来或者直接利用它的来源数据,调用Excel的接口创建Excel自己的柱状图的问题。一个是数据来源,另一个就是调用Excel接口,可以CreateOleObject('Excel.Application'),看看能不能调用Excel的柱状图功能。查Excel接口帮助。 有木有类似的文档的demo啊?发个参考下嘛 没有必要如此复杂,直接在生成EXCEL时,在EXCEL中创建Chart图了。 网上可以搜到。例如:http://blog.csdn.net/zang141588761/article/details/51700694 来段代码,看看你直接生成Excel和Chart,和我说的有区别的地方。 ChartObject就是Excel的嵌入式图表对象。 ChartObject就是Excel的嵌入式图表对象。有没有代码参考下嘛 ChartObject就是Excel的嵌入式图表对象。有没有代码参考下嘛一会儿发出来,稍等。 Excel生成图表。也可以使用Servers页封装好的组件,比较方便,原理是一样的。uses ComObj;var exlApp,WorkBook1,Sheet1, Chart1, Range1, Series1:Variant;procedure TForm1.Button1Click(Sender: TObject);var i:integer;begin try exlApp:=CreateOleObject('Excel.Application'); WorkBook1:=CreateOleObject('Excel.Sheet'); Chart1:=CreateOleObject('Excel.Chart'); except MessageBox(Handle,'调用Excel失败。','警告',MB_OK+MB_ICONWarning); Exit; end; exlApp.Visible:=False; WorkBook1:=exlApp.WorkBooks.Add; exlApp.Workbooks[1].Worksheets[1].Name:='Data1'; //-------------------------------------------- Sheet1:=exlApp.Workbooks[1].Worksheets['Data1']; for i:= 1 to 10 do Sheet1.Cells[i, 1]:=i; //-------------------------------------------- Chart1:=exlApp.Charts.Add; Chart1.ChartType:=$FFFFEFFC; //图表类型xl3DColumn Range1:=exlApp.Sheets.Item['Data1'].Range['A5:A10']; Series1:=Chart1.SeriesCollection; Series1.Add(Range1, True); exlApp.Visible:=True;end;procedure TForm1.FormDestroy(Sender: TObject);begin if not VarIsEmpty(exlApp) then begin exlApp.DisplayAlerts:=False; //不保存退出 exlApp.Quit; end;end; 引用ComObj了?代码确定正常执行。 其他部分不变,改动一下,这个应该可以解决你的报错。procedure TForm1.Button1Click(Sender: TObject);var i:integer;begin try exlApp:=CreateOleObject('Excel.Application'); WorkBook1:=CreateOleObject('Excel.Sheet'); except MessageBox(Handle,'调用Excel失败。','警告',MB_OK+MB_ICONWarning); Exit; end; WorkBook1:=exlApp.WorkBooks.Add; exlApp.Workbooks[1].Worksheets[1].Name:='Data1'; //-------------------------------------------- Sheet1:=exlApp.Workbooks[1].Worksheets['Data1']; for i:= 1 to 10 do Sheet1.Cells[i, 1]:=i; //-------------------------------------------- Chart1:=Sheet1.ChartObjects.Add(200,0,480,360); Chart1.Chart.ChartType:=$FFFFEFFC; //图表类型xl3DColumn //-------------------------------------------- Series1:=Chart1.Chart.SeriesCollection; Range1:=exlApp.Sheets.Item['Data1'].Range['A1:A10']; Series1.Add(Range1, True); Range1:=exlApp.Sheets.Item['Data1'].Range['A5:A10']; Series1.Add(Range1, True); exlApp.Visible:=True;end; 我发现问题了,是我的原因不是你代码的问题,因为我的窗体里面有了chart1和series1但不是Variant类型的,所有出错了。谢谢哈!稍后还有其他不懂的还要请教下你哦! 关闭程序,但此时有线程正在运行,此时的线程释放问题,望各位大侠指点……………… ActiveX Form的属性问题 MDI窗体问题 讨论一下Delphi中AS的用法? 为什么出错:“行句柄引用了一个已被删除的行或被标识未被”和“删除的行”? 如何将Str转换成Char? 按F9编译运行时经常出现致命错误!! 一份求职信!!!求斑竹别删,还有几天就要离校了,还没有找到工作。 特急:请问关于数据库的问题! socket和多线程的问题,高手请进(多多分等你拿:D) 请教一个问题 D7怎么播放云端amr格式音频文件
发个参考下嘛
例如:http://blog.csdn.net/zang141588761/article/details/51700694
有没有代码参考下嘛
有没有代码参考下嘛
一会儿发出来,稍等。
var
exlApp,WorkBook1,Sheet1, Chart1, Range1, Series1:Variant;procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
try
exlApp:=CreateOleObject('Excel.Application');
WorkBook1:=CreateOleObject('Excel.Sheet');
Chart1:=CreateOleObject('Excel.Chart');
except
MessageBox(Handle,'调用Excel失败。','警告',MB_OK+MB_ICONWarning);
Exit;
end;
exlApp.Visible:=False;
WorkBook1:=exlApp.WorkBooks.Add;
exlApp.Workbooks[1].Worksheets[1].Name:='Data1';
//--------------------------------------------
Sheet1:=exlApp.Workbooks[1].Worksheets['Data1'];
for i:= 1 to 10 do
Sheet1.Cells[i, 1]:=i;
//--------------------------------------------
Chart1:=exlApp.Charts.Add;
Chart1.ChartType:=$FFFFEFFC; //图表类型xl3DColumn
Range1:=exlApp.Sheets.Item['Data1'].Range['A5:A10'];
Series1:=Chart1.SeriesCollection;
Series1.Add(Range1, True);
exlApp.Visible:=True;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
if not VarIsEmpty(exlApp) then
begin
exlApp.DisplayAlerts:=False; //不保存退出
exlApp.Quit;
end;
end;
var
i:integer;
begin
try
exlApp:=CreateOleObject('Excel.Application');
WorkBook1:=CreateOleObject('Excel.Sheet');
except
MessageBox(Handle,'调用Excel失败。','警告',MB_OK+MB_ICONWarning);
Exit;
end;
WorkBook1:=exlApp.WorkBooks.Add;
exlApp.Workbooks[1].Worksheets[1].Name:='Data1';
//--------------------------------------------
Sheet1:=exlApp.Workbooks[1].Worksheets['Data1'];
for i:= 1 to 10 do
Sheet1.Cells[i, 1]:=i;
//--------------------------------------------
Chart1:=Sheet1.ChartObjects.Add(200,0,480,360);
Chart1.Chart.ChartType:=$FFFFEFFC; //图表类型xl3DColumn
//--------------------------------------------
Series1:=Chart1.Chart.SeriesCollection;
Range1:=exlApp.Sheets.Item['Data1'].Range['A1:A10'];
Series1.Add(Range1, True);
Range1:=exlApp.Sheets.Item['Data1'].Range['A5:A10'];
Series1.Add(Range1, True);
exlApp.Visible:=True;
end;
我发现问题了,是我的原因不是你代码的问题,
因为我的窗体里面有了chart1和series1但不是Variant类型的,所有出错了。
谢谢哈!稍后还有其他不懂的还要请教下你哦!