uses ComObj;
var ExcelApp: Variant;
i:integer;
begin
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.Visible := false;
ExcelApp.WorkBooks.Add;
ExcelApp.WorkSheets[1].Activate;
ExcelApp.ActiveSheet.Protect(DrawingObjects:=false,Contents:=false,Scenarios:=false);//设置保护
for i:=1 to ADOStoredProc1.RecordCount do
begin
ExcelApp.WorkSheets[1].Cells[i,1].Value:=ADOStoredProc1.FieldByName('通知书编号 ').AsString;
ADOStoredProc1.Next;
end;
ExcelApp.ActiveWorkBook.saveas('F:\demo.xls');
ExcelApp.quit;
end;为什么在数据集中的编号'000012345'写到excel中会变成'12345',前面的0全没了,怎样禁止它丢失0?
var ExcelApp: Variant;
i:integer;
begin
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.Visible := false;
ExcelApp.WorkBooks.Add;
ExcelApp.WorkSheets[1].Activate;
ExcelApp.ActiveSheet.Protect(DrawingObjects:=false,Contents:=false,Scenarios:=false);//设置保护
for i:=1 to ADOStoredProc1.RecordCount do
begin
ExcelApp.WorkSheets[1].Cells[i,1].Value:=ADOStoredProc1.FieldByName('通知书编号 ').AsString;
ADOStoredProc1.Next;
end;
ExcelApp.ActiveWorkBook.saveas('F:\demo.xls');
ExcelApp.quit;
end;为什么在数据集中的编号'000012345'写到excel中会变成'12345',前面的0全没了,怎样禁止它丢失0?
改一下你的数据库编号类型吧
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
MSExcel:Variant;
i,j:integer;
begin
SaveDialog1.Filter:='*.XLS|*.XLS';
SaveDialog1.DefaultExt:='XLS';
if SaveDialog1.Execute then
begin
MsExcel:=createOLEobject('excel.application');
MsExcel.workBooks.add;
Msexcel.visible:=false;
with DataSource1.Dataset do
begin
first;
for i:=0 to fieldcount-1 do
begin
Msexcel.cells[1,i+1].value:=fields[i].DisplayLabel ;
end;
j:=2;
while not eof do
begin
for i:=0 to fieldcount-1 do
begin
Msexcel.cells[j,i+1].numberformat:='@';
Msexcel.cells[j,i+1].value:=fields[i].AsString ;
end;
inc(j);
next;
end;
end;
MSExcel.ActiveWorkBook.SaveAs(SaveDialog1.FileName);
MSExcel.ActiveWorkBook.Saved:=True;
MSExcel.Quit;
end;
end;