ExcelApp1:= CreateOleObject('Excel.Application'); if not FileExists(safilename) then
begin
i:=FileCreate(safilename);
FileClose(i);
if not OpenFile(safilename) then exit;
ExcelApp1.Cells.Item[1,1]:=' File Name ';
ExcelApp1.Cells.Item[1,2]:=' VF(MAX) ';
ExcelApp1.Cells.Item[1,3]:=' VF(MIN) ';
ExcelApp1.Cells.Item[1,4]:=' VF(AVG) ';
ExcelApp1.Cells.Item[1,5]:=' WLD(MAX) ';
ExcelApp1.Cells.Item[1,6]:=' WLD(MIN) ';
ExcelApp1.Cells.Item[1,7]:=' WLD(AVG) ';
ExcelApp1.Cells.Item[1,8]:=' LOP(MAX) ';
ExcelApp1.Cells.Item[1,9]:=' LOP(MIN) ';
ExcelApp1.Cells.Item[1,10]:=' LOP(AVG) ';
ExcelApp1.cells[2,2].font.color:=clblue;
ExcelApp1.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp1.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp1.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp1.ActiveSheet.Rows[1].Font.UnderLine := True;
Savefile(safilename);
closefi;
end;为什么用以上方法设置不了字体的颜色?
几种写法貌似都不对。求指教啊!!
begin
i:=FileCreate(safilename);
FileClose(i);
if not OpenFile(safilename) then exit;
ExcelApp1.Cells.Item[1,1]:=' File Name ';
ExcelApp1.Cells.Item[1,2]:=' VF(MAX) ';
ExcelApp1.Cells.Item[1,3]:=' VF(MIN) ';
ExcelApp1.Cells.Item[1,4]:=' VF(AVG) ';
ExcelApp1.Cells.Item[1,5]:=' WLD(MAX) ';
ExcelApp1.Cells.Item[1,6]:=' WLD(MIN) ';
ExcelApp1.Cells.Item[1,7]:=' WLD(AVG) ';
ExcelApp1.Cells.Item[1,8]:=' LOP(MAX) ';
ExcelApp1.Cells.Item[1,9]:=' LOP(MIN) ';
ExcelApp1.Cells.Item[1,10]:=' LOP(AVG) ';
ExcelApp1.cells[2,2].font.color:=clblue;
ExcelApp1.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp1.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp1.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp1.ActiveSheet.Rows[1].Font.UnderLine := True;
Savefile(safilename);
closefi;
end;为什么用以上方法设置不了字体的颜色?
几种写法貌似都不对。求指教啊!!
FRange: Variant;ExcelApp1:= CreateOleObject('Excel.Application'); if not FileExists(safilename) then
begin
i:=FileCreate(safilename);
FileClose(i);
if not OpenFile(safilename) then exit;
ExcelApp1.Cells.Item[1,1]:=' File Name ';
ExcelApp1.Cells.Item[1,2]:=' VF(MAX) ';
ExcelApp1.Cells.Item[1,3]:=' VF(MIN) ';
ExcelApp1.Cells.Item[1,4]:=' VF(AVG) ';
ExcelApp1.Cells.Item[1,5]:=' WLD(MAX) ';
ExcelApp1.Cells.Item[1,6]:=' WLD(MIN) ';
ExcelApp1.Cells.Item[1,7]:=' WLD(AVG) ';
ExcelApp1.Cells.Item[1,8]:=' LOP(MAX) ';
ExcelApp1.Cells.Item[1,9]:=' LOP(MIN) ';
ExcelApp1.Cells.Item[1,10]:=' LOP(AVG) ';
{ExcelApp1.cells[2,2].font.color:=clblue;
ExcelApp1.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp1.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp1.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp1.ActiveSheet.Rows[1].Font.UnderLine := True;} FRange := ExcelApp1.ActiveSheet.Range[ExcelApp1.ActiveSheet.Cells[1, 1], ExcelApp1.ActiveSheet.Cells[1, 10]];
FRange.Font.Name := '隶书';
FRange.Font.Color := clBlue;
FRange.Font.Bold := True; Savefile(safilename);
closefi;
end;
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Comobj;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure ExportToXls;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ExportToXls;
var
FExcel: Variant;
FWorkbook: Variant;
FWorksheet: Variant;
FRange: Variant;
begin
Screen.Cursor := crHourGlass; try
FExcel := CreateOleObject('excel.application');
except
Screen.cursor := crDefault;
MessageDlg('Could not start Microsoft Excel!', mtError, [mbCancel], 0);
Exit;
end; try
FWorkBook := FExcel.WorkBooks.Add;
//FWorkSheet := FWorkBook.WorkSheets.Add;
FWorkSheet := FExcel.WorkBooks[1].WorkSheets[1]; FWorkSheet.Cells[1,1]:=' File Name ';
FWorkSheet.Cells[1,2]:=' VF(MAX) ';
FWorkSheet.Cells[1,3]:=' VF(MIN) ';
FWorkSheet.Cells[1,4]:=' VF(AVG) ';
FWorkSheet.Cells[1,5]:=' WLD(MAX) ';
FWorkSheet.Cells[1,6]:=' WLD(MIN) ';
FWorkSheet.Cells[1,7]:=' WLD(AVG) ';
FWorkSheet.Cells[1,8]:=' LOP(MAX) ';
FWorkSheet.Cells[1,9]:=' LOP(MIN) ';
FWorkSheet.Cells[1,10]:=' LOP(AVG) ';
{ExcelApp1.cells[2,2].font.color:=clblue;
ExcelApp1.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp1.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp1.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp1.ActiveSheet.Rows[1].Font.UnderLine := True;} FRange := FWorkSheet.Range[FWorkSheet.Cells[1, 1], FWorkSheet.Cells[1, 10]];
FRange.Font.Name := '隶书';
FRange.Font.Color := clBlue;
FRange.Font.Bold := True;
finally
FExcel.Visible := True;
Screen.Cursor := crDefault;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ExportToXls;
end;end.
Screen.Cursor := crHourGlass;
try
FExcel := CreateOleObject('excel.application');
except
Screen.cursor := crDefault;
MessageDlg('Could not start Microsoft Excel!', mtError, [mbCancel], 0);
Exit;
end;
safilename:=pathsave+datetostr(now)+'对比结果.xls';
if not FileExists(safilename) then //文件不存在则创建文件 i:=FileCreate(safilename); //创建文件
FileClose(i); //关闭文件
FExcel.Visible := False;
FExcel.DisplayAlerts:=False;
FExcel.WorkBooks.Open(safilename);
try
FWorkBook := FExcel.WorkBooks.Add;
FWorkSheet := FWorkBook.WorkSheets;
// FWorkSheet := FExcel.WorkBooks[1].WorkSheets[1];
FWorkSheet.Cells[1,1]:=' File Name ';
FWorkSheet.Cells[1,2]:=' VF(MAX) ';
FWorkSheet.Cells[1,3]:=' VF(MIN) ';
FWorkSheet.Cells[1,4]:=' VF(AVG) ';
FWorkSheet.Cells[1,5]:=' WLD(MAX) ';
FWorkSheet.Cells[1,6]:=' WLD(MIN) ';
FWorkSheet.Cells[1,7]:=' WLD(AVG) ';
FWorkSheet.Cells[1,8]:=' LOP(MAX) ';
FWorkSheet.Cells[1,9]:=' LOP(MIN) ';
FWorkSheet.Cells[1,10]:=' LOP(AVG) ';
FRange := FWorkSheet.Range[FWorkSheet.Cells[1, 1], FWorkSheet.Cells[1, 10]];
FRange.Font.Name := '隶书';
FRange.Font.Color := clBlue;
FRange.Font.Bold := True;
finally
// FExcel.Visible := True;
Screen.Cursor := crDefault;
end;红色是我加的打开一个文件,运行后生成了两个表,但是没有在我打开的那个表里,请问代码哪里有问题?
写错了,是FWorkSheet := FWorkBook.WorkSheets.add;不通过FWorkSheet 来操作,是不是就不能修改字体属性?
你是试下打开excel后,用下面这句:FWorkSheet := FExcel.WorkBooks[1].WorkSheets[1];
FExcel.DisplayAlerts:=False;
FExcel.WorkBooks.Open(safilename);
FWorkSheet := FExcel.WorkBooks[1].WorkSheets[1];
FWorkSheet.Cells[1,1]:=' File Name ';
FWorkSheet.Cells[1,2]:=' VF(MAX) ';
FWorkSheet.Cells[1,3]:=' VF(MIN) ';
FWorkSheet.Cells[1,4]:=' VF(AVG) ';
FWorkSheet.Cells[1,5]:=' WLD(MAX) ';
FWorkSheet.Cells[1,6]:=' WLD(MIN) ';
FWorkSheet.Cells[1,7]:=' WLD(AVG) ';
FWorkSheet.Cells[1,8]:=' LOP(MAX) ';
FWorkSheet.Cells[1,9]:=' LOP(MIN) ';
FWorkSheet.Cells[1,10]:=' LOP(AVG) ';
FRange := FWorkSheet.Range[FWorkSheet.Cells[1, 1], FWorkSheet.Cells[1, 10]];
FRange.Font.Name := '隶书';不行,是空的,里面没有内容
procedure TForm1.ExportToXls;
var
FExcel: Variant;
FWorkbook: Variant;
FWorksheet: Variant;
FRange: Variant;
begin
Screen.Cursor := crHourGlass;
try
FExcel := CreateOleObject('excel.application');
except
Screen.cursor := crDefault;
MessageDlg('Could not start Microsoft Excel!', mtError, [mbCancel], 0);
Exit;
end; try
FExcel.WorkBooks.Open('c:/a.xls');
//FWorkBook := FExcel.WorkBooks.Add;//去掉这句
//FWorkSheet := FWorkBook.WorkSheets.Add;
FWorkSheet := FExcel.WorkBooks[1].WorkSheets[1]; FWorkSheet.Cells[1,1]:=' File Name ';
FWorkSheet.Cells[1,2]:=' VF(MAX) ';
FWorkSheet.Cells[1,3]:=' VF(MIN) ';
FWorkSheet.Cells[1,4]:=' VF(AVG) ';
FWorkSheet.Cells[1,5]:=' WLD(MAX) ';
FWorkSheet.Cells[1,6]:=' WLD(MIN) ';
FWorkSheet.Cells[1,7]:=' WLD(AVG) ';
FWorkSheet.Cells[1,8]:=' LOP(MAX) ';
FWorkSheet.Cells[1,9]:=' LOP(MIN) ';
FWorkSheet.Cells[1,10]:=' LOP(AVG) ';
{ExcelApp1.cells[2,2].font.color:=clblue;
ExcelApp1.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp1.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp1.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp1.ActiveSheet.Rows[1].Font.UnderLine := True;}
FRange := FWorkSheet.Range[FWorkSheet.Cells[1, 1], FWorkSheet.Cells[1, 10]];
FRange.Font.Name := '隶书';
FRange.Font.Color := clBlue;
FRange.Font.Bold := True;
finally
FExcel.Visible := True;
Screen.Cursor := crDefault;
end;
end;
保存语句是这样的:
FExcel.ActiveSheet.Saveas(safilename);
我用FileCreate(safilename);创建的文件,打开后我手动点 保存 按钮,也保存不了,还是默认字体;
但是我直接在磁盘里右键新建一个XLS文件,然后打开操作再点 保存就可以。。为什么
FExcel.WorkBooks.Close;
FExcel.Quit;这样可以保存,但是把文件换成用代码新建的就不行了。。
procedure TForm1.ExportToXls;
var
FExcel: Variant;
FWorkbook: Variant;
FWorksheet: Variant;
FRange: Variant;
begin
Screen.Cursor := crHourGlass;
try
FExcel := CreateOleObject('excel.application');
except
Screen.cursor := crDefault;
MessageDlg('Could not start Microsoft Excel!', mtError, [mbCancel], 0);
Exit;
end;
try
try
FExcel.WorkBooks.Open('c:/a.xls');
FWorkSheet := FExcel.WorkBooks[1].WorkSheets[1];
except
FWorkBook := FExcel.WorkBooks.Add;//打不开就创建。
FWorkSheet := FWorkBook.WorkSheets.Add;
end;
FWorkSheet.Cells[1,1]:=' File Name ';
FWorkSheet.Cells[1,2]:=' VF(MAX) ';
FWorkSheet.Cells[1,3]:=' VF(MIN) ';
FWorkSheet.Cells[1,4]:=' VF(AVG) ';
FWorkSheet.Cells[1,5]:=' WLD(MAX) ';
FWorkSheet.Cells[1,6]:=' WLD(MIN) ';
FWorkSheet.Cells[1,7]:=' WLD(AVG) ';
FWorkSheet.Cells[1,8]:=' LOP(MAX) ';
FWorkSheet.Cells[1,9]:=' LOP(MIN) ';
FWorkSheet.Cells[1,10]:=' LOP(AVG) ';
{ExcelApp1.cells[2,2].font.color:=clblue;
ExcelApp1.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp1.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp1.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp1.ActiveSheet.Rows[1].Font.UnderLine := True;}
FRange := FWorkSheet.Range[FWorkSheet.Cells[1, 1], FWorkSheet.Cells[1, 10]];
FRange.Font.Name := '隶书';
FRange.Font.Color := clBlue;
FRange.Font.Bold := True;
finally
FExcel.Visible := True;
Screen.Cursor := crDefault;
end;
end;
FExcel.WorkBooks.Open('c:/a.xls');
FWorkSheet := FExcel.WorkBooks[1].WorkSheets[1];
except
FWorkBook := FExcel.WorkBooks.Add;//打不开就创建。
FWorkSheet := FWorkBook.WorkSheets.Add;
end;