
除了XLSReadWriteII5,还有个NativeExcel也是比较好的操作excel的组件,现将NativeExcel3的使用示例写一下,以下是代码和生成的excel表格的效果:
procedure TForm1.Button2Click(Sender: TObject);
var
i, n: Integer;
XLS: IXLSWorkbook; // 引用nExcel, ShellAPI
ws: IXLSWorksheet;
begin
XLS := TXLSWorkbook.Create;
try
ws := XLS.Sheets.Add;
ws.Name := '导出';
// 注意NativeExcel是从1开始的,不是0开始
for i := 1 to 10 do
ws.Cells.Item[1, i].Value := '标题' + IntToStr(i);
for i := 1 to 10 do
for n := 2 to 20 do
With ws.Cells.Item[n, i] do
begin
Value := IntToStr(i) + ':' + IntToStr(n - 1);
if ColumnWidth < Length(AnsiString(Value)) then // 自动列宽
ColumnWidth := Length(AnsiString(Value));
end;
for i := 1 to 10 do // 从第一列到最后一列
begin
for n := 1 to 20 do // 从第一行到最后一行
begin
With ws.Cells.Item[n, i] do
begin
Borders.LineStyle := xlContinuous;
Borders.Color := clBlack;
// 黑色#0
if n = 1 then
begin
Interior.Color := clWebOrange; // RGB(255, 140, 0); // 橘黄#FF8000
Font.Color := clWhite;
HorizontalAlignment := xlHAlignCenter;
end
else
Interior.Color := RGB(255, 248, 220); // 杏仁灰#FFFFCD
end;
end;
end;
XLS.SaveAs(ExtractFilePath(paramstr(0)) + 'temp.xls', xlOpenXMLWorkbook);
ShellExecute(0, 'Open', PChar(ExtractFilePath(paramstr(0)) + 'temp.xls'), nil, nil, SW_SHOW);
finally
XLS.close;
end;
end;