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怎样能自动调整列宽呢?
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怎样能自动调整列宽呢?
解决方案 »
- 简体系统写的软件,在繁体系统下导出excel乱码
- MDI窗体中怎样禁止crtl+tab 和crtl+F4呢?
- 请进,关于循环的问题。在线等,ok就结贴。谢谢!
- 两个问题?
- 一个关于 TDateTimePicker 的难题!欢迎各位讨论!
- 登陆网络中别的计算机的程序实现???
- 我用TNMUDP做的通信,如何跟外网发送数据,在线等(谢谢)
- 请教数据库共享问题
- 关于Format函数的用法?
- delphi xe10 utf8 解码问题
- 为什么安装了DevExpress.ExpressQuantumGrid.Suite.v5.0.FS却找不到dxDBGrid控件?
- 请问大家的启动画面窗口通常是怎么做的?还有那个登录窗口
第二个问题么,试试在ExcelApplication1.Disconnect前加入ExcelWorkSheet1.columns.autofit试试。
设置单元格的格式
见msdn的ms-help://MS.MSDNQTR.2003FEB.2052/vbaxl10/html/xlpronumberformat.htm