如题
解决方案 »
- 如何实现点击网页链接打开程序
- 那位用NetSharegetInfo成功过,帮帮忙。
- Rave Report中文版插件 V0.1
- 大家来讨论一下,用indy控件,编一个类似聊天室的程序,应该怎么样保存在线用户的信息好?用Tlist好,还是用动态数组好?还有其它方法没
- 1.窗口如何返回值?
- 求救:客户端连服务端时出错,可在服务器端断点跟踪正常
- 請問怎樣在沒有安裝DELPHI的機器上運行DELPHI應用程序﹖是不是一定要做成安裝文件﹖望傾囊相助﹗謝謝﹗
- 怎么样建议版主开一个单独 Free Pascal(lazarus) 讨论板块
- 在D5如何调用其它windows程序?
- 谁用过Visual Broker, 给讲讲。
- daisy8675(莫依)你给我进来,我有话要说!
- 建立DataModue类型的Datamodule.pas程序
如何控制字体的大小哪?谢谢
导出的时候我怎么知道Font.Size 会等于多少哪?还有如何让Excel的表格宽度与stringgrid的宽度相一致哪?谢谢!!
再説NI好象也”ding”不動了、我不来NI就”死”定了。hihiSheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,AGrid.ColCount)].Font.Size := AGrid.Font.Size;for i := 1 to AGrid.ColCount do
begin
Sheet.Columns[i].ColumnWidth := Length(AGrid.Cells[i,1]);
//Sheet.Columns[i].ColumnWidth := Length(AGrid.ColWidths[i]);
end;
不好意思,麻烦你再回答一下,想着给你加分结果不知论坛有什么故障,现在什么都看不到了!
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComObj, StdCtrls, Grids;type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; procedure SGridToExcel(SGrid: TStringGrid; ExcelFileName: String);var
Form1: TForm1;implementation{$R *.DFM}procedure SGridToExcel(SGrid: TStringGrid; ExcelFileName: String);
var
ExcelApp,
WorkSheet: Variant; i,j: Integer;
begin
try
ExcelApp := CreateOLEObject('Excel.Application');
WorkSheet := CreateOLEObject('Excel.Sheet');
except
ShowMessage(' 提示:您尚未安装 Microsoft Excel 或其不可用! ');
exit;
end; WorkSheet := ExcelApp.WorkBooks.Add; for i := 0 to SGrid.RowCount - 1 do
begin
for j := 0 to SGrid.ColCount - 1 do
begin
ExcelApp.Cells[i+1,j+1] := SGrid.Cells[i,j];
end;
end; WorkSheet.SaveAs(ExcelFileName);
WorkSheet.Close; ExcelApp.Quit;
ExcelApp := UnAssigned;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
SGridToExcel(StringGrid1,'D:\demo.xls');end;procedure TForm1.Button2Click(Sender: TObject);var
I, J, K : Integer;
begin
K := 0;
with StringGrid1 do
begin
for I := 0 to ColCount - 1 do
begin
for J:= 0 to RowCount - 1 do
begin
K := K + 1;
Cells[I,J] := IntToStr(K);
end;
end;
end;
end;end.
你按【管理】看有什么结果?^_^
const
xlWBATWorksheet = -4167;
var
XLApp, Sheet, Data: OLEVariant;
i, j: Integer;
begin
// Prepare Data
Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant);
for i := 0 to AGrid.ColCount - 1 do
for j := 0 to AGrid.RowCount - 1 do
Data[j + 1, i + 1] := AGrid.Cells[i, j];
// Create Excel-OLE Object
Result := False;
XLApp := CreateOleObject('Excel.Application');
try
// Hide Excel
XLApp.Visible := false;
// Add new Workbook
XLApp.Workbooks.Add(xlWBatWorkSheet);
Sheet := XLApp.Workbooks[1].WorkSheets[1];
Sheet.Name := ASheetName;
//Width,Font的設定
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,AGrid.ColCount)].Font.Size := AGrid.Font.Size;
for i := 1 to AGrid.ColCount do
begin
Sheet.Columns[i].ColumnWidth := Length(AGrid.Cells[i,1]);
//Sheet.Columns[i].ColumnWidth := Length(AGrid.ColWidths[i]);
end;
// Fill up the sheet
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,
AGrid.ColCount)].Value := Data;
// Save Excel Worksheet
try
XLApp.Workbooks[1].SaveAs(AFileName);
Result := True;
except
// Error
end;
finally
// Quit Excel
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
XLAPP := Unassigned;
Sheet := Unassigned;
end;
end;
end;function RefToCell(ARow, ACol: Integer): string;
begin
Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if SaveAsExcelFile(stringGrid1, 'My Stringgrid Data', ExtractFilePath (Application.ExeName)+'MyExcelFile.xls') then
ShowMessage('StringGrid saved!');
end;