FAQ > 金融建模 > 第三方交互 > Excel

Q:将数据生成Excel模板图型并导成图片保存到本地    

  • A:这里展示一个实现案例:将用户数据按Excel指定ChartSheet模板生成图型,并将图型转化为图片保存到本地。
    封装函数:TSDemo_LoadChartSheetToPic(excelName:String,Data:Array,picPath:String):Boolen
    说明:将数据生成模板图型并生成图片到本地
    参数:
    excelName:字符串,模板Excel路径
    Data:数组,图型数据源
    picPath:字符串,图片保存的路径
    函数实现代码如下:(也可直接下载导为用函数函数:附件:TSDemo_LoadChartSheetToPic.fun

    Function TSDemo_LoadChartSheetToPic(excelName,Data,picPath);
    Begin
      //-数据源sheet名
     SheetName:= 'Data';
     if not isTable(Data) then
      Return False;
     //数据导出到excel中的Datasheet中
     ExportFile2(ftXLS(),'',excelName,data,0,0,SheetName);
     //指定ChartSheet模板的数据源
    ExcelSetChartSheetDataSource(excelName,'Graph','Data',1,1,length(Data)+1,FieldCount(Data));
     ExcelSave(excelName);
    //-将Chartsheet导成图片保存在本地
     r := GetOleObject("Excel.application",3,excelObj);
     App:= excelObj.Workbooks.Open(excelName);
     if not ifobj(App) then return;
     Chart := App.Charts("Chart");
     if picPath then
     begin
      if fileExists('',picPath) then
       FileDelete('',picPath);
      Chart.Export(picPath);
     end;
     ExcelSave(excelName);
     ExcelClose(excelName);
     App.Save();
     return true;
    End;

    调用案例:其中,Excel图型模板pie.xls如附件:附件:pie.xls

     excelName:='C:\\Users\\xxx\\Desktop\\excel文档\\pie.xls';
     picPath:='C:\\Users\\xxx\\Desktop\\excel文档\\pie.jpg';
     //-数据源
     Data:=array(('a':'test1','b':1),('a':'test2','b':2),('a':'test3','b':3));
     return rdo2 TSDemo_LoadChartSheetToPic(excelName,Data,picPath);

    //保存的结果:

    其图片展示如下: