TeeChart Pro VCL/FMX教程(十二):图表的导出和导入

TeeChart Pro功能是一个系列,几乎可以是任何系列类型,可以是应用代数函数,也可以是数据源。所有函数都派生自TTeeFunction组件并继承TeeFunction的Period属性。


    本篇教程为大家带来的是TeeChart Pro VCL/FMX中图表的导出和导入的这一节,概述了以各种格式导出TeeCharts并导入TeeChart自己的.tee格式图表模板。内容主要分为以下几个部分: 

  1. 导出图表

    可用格式

    示例导出

  2. 导出图像

    JPEG,GIF,PNG

  3. 导出数据

    text,XML,HTML,XLS和XLSX

  4. TeeChart的Tee模板和数据导出/导入格式

    Tee files

  5. 导入

    导入Tee格式文件

    示例导入Tee文件

    ChartWebSource和SeriesTextSource


导出图表

可用格式

    可用的导出格式——可以将所有格式复制到文件或剪贴板,某些格式可能会复制到Stream。

图像格式

(BMP)                CopyToClipboardBitmap

(WMF)               CopyToClipboardMetafile

BMP                  TBMPExportFormat

JPEG                  SaveChartToJPEGFile

WMF                 TEMFExportFormat.Enhanced (false)

EMF                   TEMFExportFormat

GIF                     TGIFExportFormat

PNG                   TPNGExportFormat

PCX                    TPCXExportFormat

VML (HTML)      TVMLExportFormat

PDF                    TPDFExportFormat

SVG                    TSVGExportFormat

EPS                     TEPSExportFormat

Flex(Flash)          TFlexExportFormat

VRML 3D            TVRMLExportFormat

XAML (WPF)       TXAMLExportFormat

数据格式

Text                    TSeriesDataText

XML                    TSeriesDataXML

HTML                  TSeriesDataHTML

Excel                    TSeriesDataXLS

其他格式

    Tee格式是一种灵活的格式,可存储图表属性信息以及(可选)图表数据。 文件很小(取决于数据),非常适合网络用于更新基于实时客户端的图表。

TEE(TeeChart)SaveChartToFile

    在运行时,您可以使用以下命令显示导出对话框:

图表 TeeExport

例:

TeeExport( Self, Chart1 );

示例导出

    可以导出到文件中,大部分情况,都只需要定义目标的文件名。

例:

if SaveDialog1.Execute then      Chart1.SaveToBitmapFile(SaveDialog1.FileName);

导出图像

JPEG

    TeeChart本身并未包含导出方法,这是为了避免非JPEG应用程序的内存使用。

例:

// You need to include the Delphi JPEG unit in the Uses section of your project// Pass the name of the Chart to this function. We've fixed the parameters here.// In the demo they are presented as options for the user.// Place a Chart (Chart1) on a Form and populate it with data.procedure TForm1.BitBtn1Click(Sender: TObject);begin With GetChartJPEG(Chart1) do try  SaveToFile('c:tempmyJPEGChart.jpg');    { <-- save the JPEG to disk } finally  Free;  { <-- free the temporary JPEG object } end;end;Function GetChartJPEG(AChart:TCustomChart):TJPEGImage;var tmpBitmap:TBitmap;begin  result:=TJPEGImage.Create;   { <-- create a TJPEGImage }  tmpBitmap:=TBitmap.Create;   { <-- create a temporary TBitmap }  try    tmpBitmap.Width :=AChart.Width;   { <-- set the bitmap dimensions }    tmpBitmap.Height:=AChart.Height;    { draw the Chart on the temporary Bitmap... }    AChart.Draw(tmpBitmap.Canvas,Rect(0,0,tmpBitmap.Width,tmpBitmap.Height));    { set the desired JPEG options... }    With result do    begin      GrayScale            :=False;      ProgressiveEncoding  :=True;      CompressionQuality   :=50;  // % 0 - 100      PixelFormat          :=jf24bit;  // or jf8bit      ProgressiveDisplay   :=True;      Performance          :=jpBestQuality;  // or jpBestSpeed      Scale                :=jsFullSize;  // or jsHalf, jsQuarter, jsEighth      Smoothing            :=True;      { Copy the temporary Bitmap onto the JPEG image... }      Assign(tmpBitmap);    end;  finally    tmpBitmap.Free;  { <-- free the temporary Bitmap }  end;end;

    性能,jpegBestQuality和压缩质量百分比(高值减去压缩)的存在将使文件更大,导出花费的时间会更长,但是导出的效果会更好,可以根据自己的需求来选择。

GIF

    TeeChart提供了创建GIF图表图像的方法,但您应该使用Unisys检查您的许可位置,以便使用GIF LZW编码图像。 替代RLE编码不受Unisys许可的约束。

使用TeeChart对话的示例

Uses TeeGIF, TeExport;procedure TGIFExportForm.Button1Click(Sender: TObject);begin  TeeSavePanel(TGIFExportFormat,Chart1);end;

示例代码

Uses TeeGIF, GIFImage;procedure TForm1.Button1Click(Sender: TObject);var tmpGIF : TGIFImage;begin  tmpGIF:=TGIFImage.Create;  With tmpGIF do  begin    Compression:=gcLZW;    DitherMode:=dmStucki;    ColorReduction:=rmQuantizeWindows;    Assign(Chart1.TeeCreateBitmap(Chart1.Color,Rect(0,0,Chart1.Width,Chart1.Height)));    SaveToFile('c:tempChartsChart1.gif');  end;end;

PNG

    要使用PNG图像格式, Windows System文件夹或路径中需要有LPng.DLL。 PNG提供主要浏览器支持的压缩图像格式。

例:

Uses TeePNG, TeExport;procedure TPNGExportForm.Button1Click(Sender: TObject);begin  TeeSavePanel(TPNGExportFormat,Chart1);end;

导出数据

    TeeStore单元包括TSeriesData组件及其后代的定义:

Text               TSeriesDataText

XML               TSeriesDataXML

HTML             TSeriesDataHTML

Excel               TSeriesDataXLS (pre 2013 Excel xls) and TSeriesDataXLSObject (later versions of Excel for xlsx files)

    可以创建上述组件并将其与图表系列相关联,从中可以将数据导出为文件, Stream或Clipboard。以下示例将图表系列中的数据导出到HTML表:

  With TSeriesDataHTML.Create(Chart1,Series1) do  Begin    IncludeHeader:=True;    SaveToFile('c:tempdataSeries1HTMLData.txt');  end;

以上随机数据集的输出如下:

Series1
308
267
170
192
284
265
296
335
454

Excel导出代码的示例:

uses TeeExcelSource try   xlsexp := TSeriesDataXLSObject.Create(Chart1);   xlsexp.IncludeHeader :=  True;   xlsexp.IncludeIndex := True;   xlsexp.SaveToFile('c:tempmyExcelFile.xlsx'); finally   xlsexp.Free; end;

TeeChart的Tee模板和数据导出/导入格式

Tee files

    Tee files是TeeChart自己的模板格式,用于保存图表及其数据。修改的图表属性随模板一起保存,并将在模板导入新图表时重现。

优点:

  • Tee文件的尺寸非常小,在大多数情况下,它提供了优于纯图形格式(Quicker)的优势。

  • 模板的目标图表是实时的,可以进行缩放和滚动,并修改其属性。

  • 根据您的偏好,数据可以选择包含在Tee模板中。

SaveChartToFile / SaveChartToStream的声明:

procedure SaveChartToFile(AChart: TCustomChart; Const AName: String; IncludeData: Boolean); procedure SaveChartToStream(AChart: TCustomChart; AStream: TStream; IncludeData: Boolean); {See the TeeStore unit for more information}

例:

// Add the unit teestore to the 'Uses' section of your projectWith SaveDialog1 dobegin  Filter:='Teefiles|*.tee';  if Execute then      SaveChartToFile(Chart1,SaveDialog1.FileName,True);end;

导入

导入Tee格式文件

    从本地文件源或http数据源导入已保存的Tee文件。

示例导入Tee文件

// Import from fileprocedure TForm1.Button1Click(Sender: TObject);var tmpChart : TCustomChart;begin  Chart1.Free;   // Assuming Chart1 is already on the Form  tmpChart:=TChart.Create(Self);  With OpenDialog1 do  begin    Filter:= 'Teefiles|*.tee';    if Execute then        LoadChartfromFile(tmpChart,OpenDialog1.FileName);  end;  Chart1 := tmpChart as TChart;  With Chart1 do  begin    Parent:=Self;  end;end;

    您还可以从URL,LoadChartFromURL导入TeeChart文件。

ChartWebSource和SeriesTextSource

    可以通过LoadChartFromURL方法或ChartWebSource组件从远程Web源导入Tee文件。 可以通过TSeriesTextSource组件导入CSV数据。


    TeeChart for .NETTeeChart for JavaScript/HTML5TeeChart for Xamarin.Android均已加入在线订购,现在抢购可立享特别优惠!!!

    关注慧聚IT微信公众号了解产品的最新动态及最新资讯。

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月13日
下一篇 2019年6月13日

相关推荐

发表回复

登录后才能评论