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

翻译|使用教程|编辑:况鱼杰|2019-07-17 12:13:22.063|阅读 48 次

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

相关链接:

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

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


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

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

dd2629f30d553d56ccaf7164fdcb784e-sz_28327.webp.jpg






标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:Steema http://www.teechart.net/docs/TeeChartVCLTutorials.htm

登录慧都网发表评论登录


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
title
相关厂商
相关产品
TeeChart Pro VCL/FMX

支持RAD Studio,Delphi和C ++ Builder以及FireMonkey的图表制作工具

在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat