由 sheng12 » 星期三, 2010年1月20日 09:22
procedure TForm1.Button2Click(Sender: TObject);
var
iCount, jCount: Integer;
XLApp: Variant;
Sheet: Variant;
begin
button1.Enabled:=false;
button2.Enabled:=false;
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
VarClear(XLApp);
end;
try
XLApp := CreateOleObject('Excel.Application');
except
Exit;
end;
XLApp.WorkBooks.Add;
XLApp.WorkBooks[1].WorkSheets[1].Name := 'sheet1';
Sheet := XLApp.Workbooks[1].WorkSheets['sheet1'];
stringgrid1.Row := 0;
xlapp.ActiveSheet.Columns[2].numberformat := '@';
sheet.Columns[4].NumberFormatlocal := '@';
for iCount := 0 to stringgrid1.RowCount - 1 do
begin
for jCount := 0 to stringgrid1.ColCount - 1 do
Sheet.cells[iCount + 1, jCount + 1] := stringgrid1.Cells[jCount,iCount];
stringgrid1.Row := iCount;
application.ProcessMessages;
end;
XLApp.ActiveWorkbook.SaveAs(FileName:='1.xls');
Screen.Cursor := crDefault;
XLApp.quit;
button1.Enabled:=true;
button2.Enabled:=true;
end;
上面用
xlapp.ActiveSheet.Columns[2].numberformat := '@';
sheet.Columns[4].NumberFormatlocal := '@';
写出来的都是一样。。。显示为64
在过程中加了变量看了一下S;=sheet.Columns[4].NumberFormatlocal 的值,S就是64