uses ComObj
procedure TForm1.ColorButton1Click(Sender: TObject);
var  ExcelApp: Variant;
begin
    excelapp:=CreateOleObject('Excel.application');
    ExcelApp.visible:=true;
    ExcelApp.Caption:='应用程序调用 Microsoft Excel';
    ExcelApp.WorkBooks.Add;
    ExcelApp.workbooks.Open('F:\data\data_2008_3_14.txt');
end;
现在的情况是text每行的数据只能导入到第一个单元格中,我想要的结果是数据1 数据2 数据3能够按A, B ,C 的格式导入,
请各位帮帮忙!

解决方案 »

  1.   

    把txt文件以数据表方式打开比如:
    const
      filepath = 'c:\aa.txt';
    begin
      //把txt文件以数据表方式打开
      adoDS.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source="' + filepath  + '";Extended Properties=Text;Persist Security Info=False';
      with adoDS do
      begin
        close;
        sql.text := 'SELECT * FROM [' + GetTableName(Trim(m_jobReq.fileName)) + ']';
        open;
      end;
      //分别写到Excel的单元中,下边为示例
      ExcelApp.Cells[0,0].Value := fields.field[0].asstring;
    end;
      

  2.   

    问题是我不想改变txt中的内容
      

  3.   

    你的data_2008_3_14.txt是不是定长的啊
    定长的话自己挨着个数读
    如果不是定长,总有分隔符的吧,譬如空格什么的,也能读
    总之,一个字符串一个字符串读,然后写入excel