• Delphi Excel


    用delphi写excel文件
    2007-03-18 21:12

    1.引用:      Excel2000, OleServer,Comobj, StdCtrls

    2.声明变量:     ExcelApplication,Sheet1:Variant;(全局的或局部的).

    3.创建及写入:  

    try
         ExcelApplication:=CreateOleObject('Excel.Application');
    except
         Showmessage('Sorry,你可能?FONT COLOR="#000000">]有安裝Excel');
         abort;
    end;
    ExcelApplication.Visible:=true;
    ExcelApplication.Workbooks.Add(xlWBatWorkSheet);
    Sheet1:=ExcelApplication.Workbooks[1].Worksheets['sheet1'];
    Sheet1.Name:='Delphi控制Excel Chart';
    Sheet1.Cells.item[1,1]:='姓名';     //第1行,第1列

    4.使用图表

    var Cell1,Cell2,Cell3,Cell4,Range1,Range2:Variant;

    //向工作表中添加內嵌圖表﹐Add方法中的四個參數分別表示與儲存格A1的左邊距﹑頂部邊距﹑以及圖表的寬度and高度﹔
    Sheet1.ChartObjects.add(10, 60, 500, 280);
    sheet1.ChartObjects[1].Activate; //激活當前圖表
    sheet1.ChartObjects[1].Chart.charttype:=xl3DColumnClustered; //指定圖表類型﹕立體叢集直條圖
    sheet1.ChartObjects[1].Chart.seriescollection.ADD[Range2];     //建立新數例
    sheet1.ChartObjects[1].Chart.seriescollection[1].values:=Range2; //指定新數例值
    sheet1.ChartObjects[1].Chart.seriesCollection[1].hasdatalabels:=True; //顯示圖表中數列的資料標簽﹔
    sheet1.ChartObjects[1].Chart.Axes[xlValue].MinimumScale:=100;//設定數值座標軸的最小刻度值﹔
    sheet1.ChartObjects[1].Chart.Axes[xlValue].MaximumScale:=200;//設定數值座標軸的最大刻度值﹔
    sheet1.ChartObjects[1].Chart.Axes[xlValue].MajorUnit:=10; //設定數值座標的主要單位﹔
    sheet1.ChartObjects[1].Chart.Axes[xlValue].MinorUnit:=10; //設定數值座標的次要單位﹔
    sheet1.ChartObjects[1].Chart.Axes[xlCategory].HasTitle:=True;
    sheet1.ChartObjects[1].Chart.Axes[xlCategory].AxisTitle.Text:='星期';     //類別座標軸標簽。
    sheet1.ChartObjects[1].Chart.Axes[xlCategory].CategoryNames:=Range1;
    sheet1.ChartObjects[1].Chart.HasLegend:=false;//不顯示圖例
    sheet1.ChartObjects[1].Chart.ChartArea.Fill.Visible:=true; //圖表區域填滿
    sheet1.ChartObjects[1].Chart.ChartArea.Fill.ForeColor.SchemeColor:= 28;     //前景色彩﹔
    sheet1.ChartObjects[1].Chart.ChartArea.Fill.BackColor.SchemeColor:= 42;     //背景色彩﹔
    sheet1.ChartObjects[1].Chart.Rotation :=44; // 以度為單位傳回或設定立體圖表檢視的旋轉值﹔
    sheet1.ChartObjects[1].Chart.walls.Interior.ColorIndex:=28;
    //如果指定圖表的座標軸為直角﹐并與圖表的轉角或仰角無關﹐則為True,僅適用于立體折線圖﹐直條圖與橫條圖﹔
    sheet1.ChartObjects[1].Chart.RightAngleAxes := True;
    sheet1.ChartObjects[1].Chart.ChartGroups(1).VaryByCategories:=true;//對每個資料標號指定不同的色彩或圖樣.

    ////////////////////////////////////////////////////////////////////////////////////////////////////

    以下是完整文档

    unit Unit1;

    interface

    uses
        Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs

    , Excel2000, OleServer,Comobj, StdCtrls;

    type
        TForm1 = class(TForm)
          Button1: TButton;
          procedure Button1Click(Sender: TObject);
        private
        { Private declarations }
        //==================================
        ExcelApplication,Sheet1:Variant;
        public
          { Public declarations }
        end;

    var
        Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    var Cell1,Cell2,Cell3,Cell4,Range1,Range2:Variant;
    begin
    try
        ExcelApplication:=CreateOleObject('Excel.Application');
    except
        Showmessage('Sorry,你可能?FONT COLOR="#000000">]有安裝Excel');
        abort;
    end;
    ExcelApplication.Visible:=true;
    ExcelApplication.Workbooks.Add(xlWBatWorkSheet);
    Sheet1:=ExcelApplication.Workbooks[1].Worksheets['sheet1'];
    Sheet1.Name:='Delphi控制Excel Chart';
    Sheet1.Cells.item[1,1]:='Excel Chart -范例';
    Sheet1.Cells.item[2,1]:='星期';         //第二行,第1列
    Sheet1.Cells.item[2,2]:='星期一';
    Sheet1.Cells.item[2,3]:='星期二';
    Sheet1.Cells.item[2,4]:='星期三';       //我要知道sheet的所有属性
    Sheet1.Cells.item[2,5]:='星期四';
    Sheet1.Cells.item[2,6]:='星期五-';
    Sheet1.Cells.item[2,7]:='星期六';
    Sheet1.Cells.item[2,8]:='星期日';
    Sheet1.Cells.item[3,1]:='銷售量';
    Sheet1.Cells.item[3,2]:=115;
    Sheet1.Cells.item[3,3]:=112;
    Sheet1.Cells.item[3,4]:=156;
    Sheet1.Cells.item[3,5]:=148;
    Sheet1.Cells.item[3,6]:=132;
    Sheet1.Cells.item[3,7]:=196;
    Sheet1.Cells.item[3,8]:=162;
    Cell1:=Sheet1.Cells.item[2,2];
    Cell2:=Sheet1.Cells.item[2,8];
    Cell3:=Sheet1.Cells.item[3,2];
    Cell4:=Sheet1.Cells.item[3,8];
    Range1:=sheet1.Range[cell1,cell2]; //設定Chart類別座標軸的取值范圍
    Range2:=sheet1.Range[cell3,cell4]; //設定Chart數值座標軸的取值范圍
    Range1.Borders.Color:=27;
    Range2.Borders.Color:=6;
    //向工作表中添加內嵌圖表﹐Add方法中的四個參數分別表示與儲存格A1的左邊距﹑頂部邊距﹑以及圖表的寬度and高度﹔
    Sheet1.ChartObjects.add(10, 60, 500, 280);
    sheet1.ChartObjects[1].Activate; //激活當前圖表
    sheet1.ChartObjects[1].Chart.charttype:=xl3DColumnClustered; //指定圖表類型﹕立體叢集直條圖
    sheet1.ChartObjects[1].Chart.seriescollection.ADD[Range2];    //建立新數例
    sheet1.ChartObjects[1].Chart.seriescollection[1].values:=Range2; //指定新數例值
    sheet1.ChartObjects[1].Chart.seriesCollection[1].hasdatalabels:=True; //顯示圖表中數列的資料標簽﹔
    sheet1.ChartObjects[1].Chart.Axes[xlValue].MinimumScale:=100;//設定數值座標軸的最小刻度值﹔
    sheet1.ChartObjects[1].Chart.Axes[xlValue].MaximumScale:=200;//設定數值座標軸的最大刻度值﹔
    sheet1.ChartObjects[1].Chart.Axes[xlValue].MajorUnit:=10; //設定數值座標的主要單位﹔
    sheet1.ChartObjects[1].Chart.Axes[xlValue].MinorUnit:=10; //設定數值座標的次要單位﹔
    sheet1.ChartObjects[1].Chart.Axes[xlCategory].HasTitle:=True;
    sheet1.ChartObjects[1].Chart.Axes[xlCategory].AxisTitle.Text:='星期';    //類別座標軸標簽。
    sheet1.ChartObjects[1].Chart.Axes[xlCategory].CategoryNames:=Range1;
    sheet1.ChartObjects[1].Chart.HasLegend:=false;//不顯示圖例
    sheet1.ChartObjects[1].Chart.ChartArea.Fill.Visible:=true; //圖表區域填滿
    sheet1.ChartObjects[1].Chart.ChartArea.Fill.ForeColor.SchemeColor:= 28;    //前景色彩﹔
    sheet1.ChartObjects[1].Chart.ChartArea.Fill.BackColor.SchemeColor:= 42;    //背景色彩﹔
    sheet1.ChartObjects[1].Chart.Rotation :=44; // 以度為單位傳回或設定立體圖表檢視的旋轉值﹔
    sheet1.ChartObjects[1].Chart.walls.Interior.ColorIndex:=28;
    //如果指定圖表的座標軸為直角﹐并與圖表的轉角或仰角無關﹐則為True,僅適用于立體折線圖﹐直條圖與橫條圖﹔
    sheet1.ChartObjects[1].Chart.RightAngleAxes := True;
    sheet1.ChartObjects[1].Chart.ChartGroups(1).VaryByCategories:=true;//對每個資料標號指定不同的色彩或圖樣.
    end;

  • 相关阅读:
    轻、快、好、免费的开发工具
    通过改进算法来优化程序性能的真实案例(Ransac)
    图像变形算法:实现Photoshop液化工具箱中向前变形工具
    用Helper对类的行为进行修饰以便复用(附:外三篇)
    桌边书
    高音+海豚音收藏
    Silverlight Framework没有得Enum.GetValues方法
    mysql安装出现error Nr.1045
    只有mdf文件而没有ldf文件修复方法
    js鼠标样式
  • 原文地址:https://www.cnblogs.com/jackxun/p/ToExcel.html
Copyright © 2020-2023  润新知