TeeChart Pro VCL/FMX教程(十二):圖表的導出和導入
TeeChart Pro VCL/FMX是一款主流的圖表制作工具。提供了數(shù)百種用于可視化的2D、3D圖形樣式、56種數(shù)學、統(tǒng)計和金融函數(shù),以及不限數(shù)量的坐標軸和30種調色板組件。TeeChart Pro VCL/FMX教程將會以連載的形式持續(xù)為大家?guī)鞹eeChart Pro VCL/FMX的使用方法。
本篇教程為大家?guī)淼氖?a href="http://www.xiangyinys.com/product/608/download" target="_self" style="white-space: normal; color: rgb(31, 73, 125);">TeeChart Pro VCL/FMX中圖表的導出和導入的這一節(jié),概述了以各種格式導出TeeCharts并導入TeeChart自己的.tee格式圖表模板。內容主要分為以下幾個部分:
導出圖表
可用格式
示例導出
導出圖像
JPEG,GIF,PNG
導出數(shù)據(jù)
text,XML,HTML,XLS和XLSX
TeeChart的Tee模板和數(shù)據(jù)導出/導入格式
Tee files
導入
導入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
數(shù)據(jù)格式
Text TSeriesDataText
XML TSeriesDataXML
HTML TSeriesDataHTML
Excel TSeriesDataXLS
其他格式
Tee格式是一種靈活的格式,可存儲圖表屬性信息以及(可選)圖表數(shù)據(jù)。 文件很?。ㄈQ于數(shù)據(jù)),非常適合網(wǎng)絡用于更新基于實時客戶端的圖表。
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和壓縮質量百分比(高值減去壓縮)的存在將使文件更大,導出花費的時間會更長,但是導出的效果會更好,可以根據(jù)自己的需求來選擇。
GIF
TeeChart提供了創(chuàng)建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;
導出數(shù)據(jù)
TeeStore單元包括TSeriesData組件及其后代的定義:
Text TSeriesDataText
XML TSeriesDataXML
HTML TSeriesDataHTML
Excel TSeriesDataXLS (pre 2013 Excel xls) and TSeriesDataXLSObject (later versions of Excel for xlsx files)
可以創(chuàng)建上述組件并將其與圖表系列相關聯(lián),從中可以將數(shù)據(jù)導出為文件, Stream或Clipboard。以下示例將圖表系列中的數(shù)據(jù)導出到HTML表:
With TSeriesDataHTML.Create(Chart1,Series1) do Begin IncludeHeader:=True; SaveToFile('c:\tempdata\Series1HTMLData.txt'); end;
以上隨機數(shù)據(jù)集的輸出如下:
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模板和數(shù)據(jù)導出/導入格式
Tee files
Tee files是TeeChart自己的模板格式,用于保存圖表及其數(shù)據(jù)。修改的圖表屬性隨模板一起保存,并將在模板導入新圖表時重現(xiàn)。
優(yōu)點:
Tee文件的尺寸非常小,在大多數(shù)情況下,它提供了優(yōu)于純圖形格式(Quicker)的優(yōu)勢。
模板的目標圖表是實時的,可以進行縮放和滾動,并修改其屬性。
根據(jù)您的偏好,數(shù)據(jù)可以選擇包含在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數(shù)據(jù)源導入已保存的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數(shù)據(jù)。
TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android均已加入在線訂購,現(xiàn)在搶購可立享特別優(yōu)惠?。?!
關注慧聚IT微信公眾號???,了解產品的最新動態(tài)及最新資訊。