TeeChart Pro VCL/FMX教程之图表的导出和导入

本文介绍了TeeChartProVCL/FMX图表制作工具的使用方法,包括图表的导出和导入功能。支持多种格式如JPEG、GIF、PNG等,并提供TeeChart特有的模板格式。还介绍了如何通过不同格式保存和加载图表数据。

    TeeChart Pro VCL/FMX是一款主流的图表制作工具。提供了数百种用于可视化的2D、3D图形样式、56种数学、统计和金融函数,以及不限数量的坐标轴和30种调色板组件。TeeChart Pro VCL/FMX教程将会以连载的形式持续为大家带来TeeChart Pro VCL/FMX的使用方法。 


    本篇教程为大家带来的是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

    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:\temp\myJPEGChart.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:\tempCharts\Chart1.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:\tempdata\Series1HTMLData.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:\temp\myExcelFile.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 project

With SaveDialog1 do
begin
  Filter:='Teefiles|*.tee';

  if Execute then 
     SaveChartToFile(Chart1,SaveDialog1.FileName,True);
end;

导入

导入Tee格式文件

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

示例导入Tee文件

// Import from file

procedure 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数据。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值