TeeChart For VCL/FMX V2017使用教程:第十二章 导出和导入图表


本教程概述了,以各种不同的格式导出了TeeCharts,并导入了TeeChart自己的.tee格式图表模板。在您的TeeChart安装文件夹下面的Examples文件夹中,可以看到TeeChart示例代码。

目录

12.1 导出图表

可用格式

导出示例

12.2 导出图像

JPEG

GIF

PNG

12.3导出数据

Text, XML, HTML, XLSXLSX

12.4  TeeChart'Tee' 模版和数据导出导入格式

Tee文件

12.5 导入

导入Tee格式文件

导入Tee文件文件示例

ChartWebSource 和SeriesTextSource

其他数据源


12.1 导出图表

12.1.1 可用格式

        可用的导出格式。所有格式都可以复制到文件或剪贴板中。有些格式可能会被复制到流中。

图像格式

 

数据格式

 

(BMP)

CopyToClipboardBitmap

Text

TSeriesDataText

(WMF)

CopyToClipboardMetafile

XML

TSeriesDataXML

BMP

TBMPExportFormat

HTML

TSeriesDataHTML

JPEG

SaveChartToJPEGFile

Excel

TSeriesDataXLS

WMF

TEMFExportFormat.Enhanced (false)

 

 

EMF

TEMFExportFormat

其它格式

 

GIF

TGIFExportFormat

TEE (TeeChart)

SaveChartToFile

PNG

TPNGExportFormat

 

 

PCX

TPCXExportFormat

 

 

VML (HTML)

TVMLExportFormat

 

 

PDF

TPDFExportFormat

 

 

SVG

TSVGExportFormat

 

 

EPS

TEPSExportFormat

 

 

Flex(Flash)

TFlexExportFormat

 

 

VRML 3D

TVRMLExportFormat

 

 

XAML (WPF)

TXAMLExportFormat

 

 

        Tee格式是一种灵活的格式,存储图表属性信息,并可选地存储图表数据。文件很小(依赖于数据),对于使用网络来更新基于客户机的图表来说是理想的。

        在运行时,你可以通过使用Chart TeeExport方法.来显示导出对话框

   示例:   TeeExport( Self, Chart1 );

12.1.2 导出示例

        导出到一个文件是非常简单的,在大多数情况下,您只需要定义目标文件名。

   示例:

  if SaveDialog1.Execute then

    Chart1.SaveToBitmapFile(SaveDialog1.FileName);

12.2 导出图像

12.2.1 JPEG

        JPEG文件的导出为了速度和质量提供了额外的参数。请参阅Examples文件夹中包含的JPEG demoTeeChart为了避免非jpeg应用程序的内存开销,该导出方法没有被原生的包括在内。

         示例

//您需要在项目的Uses部分中包含Delphi JPEG单元

//将图表的名字传递给该函数。我们已经修正了这些参数。

//在演示中,它们被作为选项提供给用户

//在窗体上放置一个图表(Chart1),并用数据填充它。

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 With GetChartJPEG(Chart1) do
 try
  SaveToFile('c:\temp\myJPEGChart.jpg');    { <--将JPEG保存到磁盘}
 finally
  Free;  { <--释放临时JPEG对象}
 end;
end;

Function GetChartJPEG(AChart:TCustomChart):TJPEGImage;
var tmpBitmap:TBitmap;
begin
  result:=TJPEGImage.Create;   { <-- 创建一个TJPEGImage }
  tmpBitmap:=TBitmap.Create;   { <--创建一个临时的TBitmap }
  try
    tmpBitmap.Width :=AChart.Width;   { <--设置bitmap尺寸}
    tmpBitmap.Height:=AChart.Height;
    { 在临时Bitmap上绘制图表... }
    AChart.Draw(tmpBitmap.Canvas,Rect(0,0,tmpBitmap.Width,tmpBitmap.Height));
    {设置所需的JPEG选项... }
    With result do
    begin
      GrayScale            :=False;
      ProgressiveEncoding  :=True;
      CompressionQuality   :=50;  // % 0 - 100
      PixelFormat          :=jf24bit;  // 或 jf8bit
      ProgressiveDisplay   :=True;
      Performance          :=jpBestQuality;  // 或 jpBestSpeed
      Scale                :=jsFullSize;  // 或 jsHalf, jsQuarter,jsEighth
      Smoothing            :=True;
      { 将临时Bitmap复制到JPEG图像上... }
      Assign(tmpBitmap);
    end;
  finally
    tmpBitmap.Free;  { <-- 释放临时Bitmap }
  end;
end;

        Performance(性能)、jpegBestQualityjpeg最佳质量)和CompressionQuality(压缩质量)百分比(高值少压缩),将使文件更大,因此在网络上传输的速度更慢——不过,质量更好!您需要决定最佳的平衡以适合您的应用程序。

12.2.2 GIF

        GIF的支持包括在Anders MelanderDelphi GIFImage ((c)1997-99年的Anders Melander)TeeChart惠赠中。GIF类的完整文档超出了TeeChart的文档的范围。Anders已经向Jedi 项目捐赠了GIFImage,他现在为这个项目协调文档和支持。

        TeeChart提供了创建GIF图表图像的方法,但是为了使用使用GIFLZW编码的图像,你应该使用Unisys检查你的授权位置。可供替代的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;

12.2.3 PNG

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

示例

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

12.3 导出数据

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

Text

TSeriesDataText

XML

TSeriesDataXML

HTML

TSeriesDataHTML

Excel

TSeriesDataXLS


        上面的组件可以创建并关联到一个图表序列,它们可以将图表序列的数据导出为文件、流或剪贴板。

        下面的示例将数据从图表序列导出到HTML:

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

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

Series1

308

267

170

192

284

253

265

296

335

454












        Excel导出代码的一个例子:

try
   xlsexp := TSeriesDataXLSObject.Create(Chart1);
   xlsexp.IncludeHeader :=  True;
   xlsexp.IncludeIndex := True;
   xlsexp.SaveToFile('c:\temp\myExcelFile.xlsx');
 finally
   xlsexp.Free;
 end;

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

12.4.1 Tee files

        Tee文件是TeeChart的用于保存图表和数据的自有模板格式。修改后的图表属性保存在模板中,并在模板导入到新图表时进行复制。

优势:

  • Tee文件的尺寸非常小,在大多数情况下,它比纯粹的图形格式更有优势。(更快).
  • 模板的目标图表是“生动的”,它可以被缩放和滚动,并修改它的属性。
  • 根据您的喜好,数据可以随意地包含在tee模板中。

        SaveChartToFile / SaveChartToStream的声明:

         procedure SaveChartToFile(AChart:TCustomChart; Const AName: String; IncludeData: Boolean);

         procedure SaveChartToStream(AChart:TCustomChart; AStream: TStream; IncludeData: Boolean);

         {:更多信息请参见TeeStore单元}

        示例

//将单元teestore添加到工程的“Uses”部分
With SaveDialog1 do
begin
  Filter:='Teefiles|*.tee';
  if Execute then 
     SaveChartToFile(Chart1,SaveDialog1.FileName,True);
end;

12.5 导入

12.5.1 导入Tee 格式文件

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

12.5.2 导入示例

        示例

//从文件导入

procedure TForm1.Button1Click(Sender: TObject);
var tmpChart : TCustomChart;
begin
  Chart1.Free;   //假设Chart1已经在窗体上了
  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中导入一个TeeChart的文件,LoadChartFromURL

12.5.3 ChartWebSource和SeriesTextSource

        Tee文件可以通过LoadChartFromURL方法或ChartWebSource组件从远程web源导入。可以通过TSeriesTextSource组件导入CSV数据。请参阅Internet应用程序教程获得更多信息。

12.5.4 其它数据源

        有关从其他数据库信息来源导入数据的信息,请参见数据库访问教程


第十二章 完

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值