unit Unit1;
interface
uses
Printers,Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, ExcelXP, OleServer, StdCtrls, Grids,
Mask, RzEdit,frxDesgn,
frxClass, frxExportRTF, frxDBSet, frxExportPDF;
type papgxy=record
l,t,r,b:Extended;
end;
type bktype =record // 边框
line:boolean;
color:integer;
width:Extended;
end;
type txttpye =record
text:string;
fontcolor, fontSize:integer;
FontBold,FontItalic:boolean;
thi,tvi:integer;//文字排列位置
fontstyle, fontname:string;
fontun,fontstr:boolean;
bcolor:integer;
end;
type cell= record
t,L,h,w :Extended ;
row,col,row2:integer;
txt:txttpye;
leftb,topb,Bottomb,Rightb:bktype;// 边框
k:integer;
end;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Ea1: TExcelApplication;
Es1: TExcelWorksheet;
fr1: TfrxReport;
Memo1: TMemo;
Button4: TButton;
Button5: TButton;
Ed2: TEdit;
Ed1: TEdit;
Od1: TOpenDialog;
sd1: TSaveDialog;
Button6: TButton;
ed3: TEdit;
Button7: TButton;
Button8: TButton;
Cs1: TComboBox;
Button9: TButton;
fd3: TfrxDBDataset;
fd2: TfrxDBDataset;
fd1: TfrxDBDataset;
Button3: TButton;
frxPDFExport1: TfrxPDFExport;
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button7Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
function color_i(i:integer):tcolor; //颜色转换
var c1: tcolor;
begin
case i of
1 : c1:=$000000;
2 : c1:=$FFFFFF;
3 : c1:=$0000FF;
4 : c1:=$00FF00;
5 : c1:=$FF0000;
6 : c1:=$00FFFF;
7 : c1:=$FF00FF;
8 : c1:=$FFFF00;
9 : c1:=$000080;
10 : c1:=$008000;
11 : c1:=$800000;
12 : c1:=$008080;
13 : c1:=$800080;
14 : c1:=$808000;
15 : c1:=$C0C0C0;
16 : c1:=$808080;
17 : c1:=$FF9999;
18 : c1:=$663399;
19 : c1:=$CCFFFF;
20 : c1:=$FFFFCC;
21 : c1:=$660066;
22 : c1:=$8080FF;
23 : c1:=$CC6600;
24 : c1:=$FFCCCC;
25 : c1:=$800000;
26 : c1:=$FF00FF;
27 : c1:=$00FFFF;
28 : c1:=$FFFF00;
29 : c1:=$800080;
30 : c1:=$000080;
31 : c1:=$808000;
32 : c1:=$FF0000;
33 : c1:=$FFCC00;
34 : c1:=$FFFFCC;
35 : c1:=$CCFFCC;
36 : c1:=$99FFFF;
37 : c1:=$FFCC99;
38 : c1:=$CC99FF;
39 : c1:=$FF99CC;
40 : c1:=$99CCFF;
41 : c1:=$FF6633;
42 : c1:=$CCCC33;
43 : c1:=$00CC99;
44 : c1:=$00CCFF;
45 : c1:=$0099FF;
46 : c1:=$0066FF;
47 : c1:=$996666;
48 : c1:=$969696;
49 : c1:=$663300;
50 : c1:=$669933;
51 : c1:=$003300;
52 : c1:=$003333;
53 : c1:=$003399;
54 : c1:=$663399;
55 : c1:=$993333;
56 : c1:=$333333;
end;
Result:=c1;
end;
function cd(i:Extended):Extended;
begin
Result:=1.34*i;
end;
procedure papg_set(PageSet:Variant;P:Tfrxreportpage);
var a:integer;
begin
p.LeftMargin :=PageSet.LeftMargin/2.8348;
p.TopMargin :=PageSet.topMargin/2.8348;
p.RightMargin :=PageSet.RightMargin/2.8348;
p.BottomMargin :=PageSet.BottomMargin/2.8348;
p.PrintOnPreviousPage:=True ; //合并打印
if PageSet.Orientation=2
then p.Orientation:=poLandscape
else p.Orientation:=poPortrait;
p.PaperSize:=PageSet.PaperSize;
{
if PageSet.PaperSize=xlPaperA3 then p.PaperSize:=DMPAPER_A3;
if PageSet.PaperSize=xlPaperA4 then p.PaperSize:=DMPAPER_A4;
if PageSet.PaperSize=xlPaperA5 then p.PaperSize:=DMPAPER_A5;
}
end;
function cell_du(row,col:integer;o1:integer;row2:integer):cell;
var mm:cell;
ms :boolean;
fontsyle1:string;
r2,c2:integer;
begin
with form1.Es1 do
begin
mm.txt.text :=Cells.Item[row,col]; // 内容
mm.t := Cells.Item[row,col].top; //顶
mm.l := cells.Item[row,col].left; //左
mm.k:=0;
r2:= Cells.Item[row,col].MergeArea