我想把dbgrid中的数据转化成excel的形式,可是我发现我数据库中字段(员工编号)如(002345)的第一二位是0,则转化后excel表格中出现的是数据的第一二位的0少掉了,结果转化后的数据是(2345),请问如何修改下述的代码才能解决这个问题呢?
procedure TForm7.SpeedButton6Click(Sender: TObject);
var
i, row, column,icount: integer;
ExcelApplication1: TExcelApplication;
ExcelWorkbook1: TExcelWorkbook;
ExcelWorksheet1: TExcelWorksheet;begin
if application.MessageBox('确定要倒出记录吗?','倒出记录',mb_okcancel)=idok then
begin
Try
ExcelApplication1 := TExcelApplication.Create(Application);
ExcelWorksheet1 := TExcelWorksheet.Create(Application);
ExcelWorkbook1 := TExcelWorkbook.Create(Application); ExcelApplication1.Connect;
Except
MessageDlg('Excel may not be installed',
mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0] := True;
ExcelApplication1.Caption := 'Excel Application';
ExcelApplication1.Workbooks.Add(Null, 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
DBGrid1.DataSource.DataSet.Open;
for iCount := 0 to dbgrid1.Columns.Count - 1 do
begin
ExcelWorksheet1.cells.Item[1, iCount + 1] := dbgrid1.Columns.Items[iCount].Title.Caption;
end;
row := 2;
While Not (DBGrid1.DataSource.DataSet.Eof) do
begin
column := 1;
for i := 1 to DBGrid1.DataSource.DataSet.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row, column] := DBGrid1.DataSource.DataSet.fields[i - 1].AsString;
column := column + 1;
end;
DBGrid1.DataSource.DataSet.Next;
row := row + 1;
end;
ExcelApplication1.Disconnect;
//ExcelApplication1.Quit;
ExcelApplication1.Free;
ExcelWorksheet1.Free;
ExcelWorkbook1.Free;
end;
end;
procedure TForm7.SpeedButton6Click(Sender: TObject);
var
i, row, column,icount: integer;
ExcelApplication1: TExcelApplication;
ExcelWorkbook1: TExcelWorkbook;
ExcelWorksheet1: TExcelWorksheet;begin
if application.MessageBox('确定要倒出记录吗?','倒出记录',mb_okcancel)=idok then
begin
Try
ExcelApplication1 := TExcelApplication.Create(Application);
ExcelWorksheet1 := TExcelWorksheet.Create(Application);
ExcelWorkbook1 := TExcelWorkbook.Create(Application); ExcelApplication1.Connect;
Except
MessageDlg('Excel may not be installed',
mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0] := True;
ExcelApplication1.Caption := 'Excel Application';
ExcelApplication1.Workbooks.Add(Null, 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
DBGrid1.DataSource.DataSet.Open;
for iCount := 0 to dbgrid1.Columns.Count - 1 do
begin
ExcelWorksheet1.cells.Item[1, iCount + 1] := dbgrid1.Columns.Items[iCount].Title.Caption;
end;
row := 2;
While Not (DBGrid1.DataSource.DataSet.Eof) do
begin
column := 1;
for i := 1 to DBGrid1.DataSource.DataSet.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row, column] := DBGrid1.DataSource.DataSet.fields[i - 1].AsString;
column := column + 1;
end;
DBGrid1.DataSource.DataSet.Next;
row := row + 1;
end;
ExcelApplication1.Disconnect;
//ExcelApplication1.Quit;
ExcelApplication1.Free;
ExcelWorksheet1.Free;
ExcelWorkbook1.Free;
end;
end;
解决方案 »
- 求大神解决FTP的疑惑!!!!1
- 帮我看下数据库语句错在哪
- 大家有没有碰到过,dxdbtreeview为什么窗体退出的时候,会自动删除数据!
- 请问如何在combobox组件中实现一个或多个条件查询
- 请问这个问题是什么回事??关于TeeChart的
- TField.OnGetText的使用问题!日期不可用吗?
- 请问TList的问题
- 我现在正在做一个三层结果的数据库应用程序
- 用ADOquery來更新后台數據庫的問題
- 请教怎样在memo中显示网页?
- IdHTTP的Get方法用域名不能访问,用IP却可以(DNS解析正常)
- DBGrid导出到Excel,怎样才能控制EXCEL文档的格式啊????高手快来!!
方法2:值前面加上单引号
ExcelWorksheet1.Cells.Item[row, column] := ''' + DBGrid1.DataSource.DataSet.fields[i - 1].AsString;