procedure TFORMITMI.Button1Click(Sender: TObject);
 var
  i, row, column: integer;
   ExcelApplication1: TExcelApplication;
    ExcelWorkbook1: TExcelWorkbook;
    ExcelWorksheet1: TExcelWorksheet;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;
  row := 2;
  ExcelWorksheet1.Cells.Item[1, 1] :='物料编码';
  ExcelWorksheet1.Cells.Item[1, 2] :='物料描述';
  ExcelWorksheet1.Cells.Item[1, 3] :='单位';
  ExcelWorksheet1.Cells.Item[1, 4] :='制构码';
  ExcelWorksheet1.Cells.Item[1, 5] :='状态';
  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;
用上述方法导出EXCEL,问题:
1。其中第一个字段“物料编码”比如原来的值是0000016,但导出到EXCEL后变成了16,怎样保持原来的格式?
2。导成的EXCEL怎样能自动调整列宽呢?