已解决。to eastweast:你的方法从速度上来说是极快的(我不能肯定是不是最快的,哈哈),用如下方法实现:var cds: TClientDataSet; begin ...; // 加载数据到 cds 中 cds.SaveToFile('C:/temp.xls', dfXMLUTF8); // 注意要用 dfXMLUTF8 格式 ...;end;经粗略测试,导出 8000条记录(6个字段)大约只需 1.5 秒左右,但是这种方法导出的文件虽然可以用Excel直接打开,但是有些“难看”,如要像正常的Excel表那样,就需要用户自己再删除一些行和列,所以此法可行,但我没有采用。我用的方法也很简单:就是直接把数据导出成制表符分隔的文本文件(同上记录大约耗时2.5秒左右),这样Excel也可以直接打开,不过也有缺点,主要是:1、列宽为Excel默认列宽,不够美观;2、用户双击某列自动调整后再关闭时会询问是否保存,此时如要保存,则要注意选择格式;3、最大的问题(仅从理论上进行分析,没有测试过):如果某个字段的内容恰好有制表符、换行或回车,可能导出的文本被Excel打开后就会有问题,所以这种方法有局限性。另外,网上的用剪贴板复制、粘贴的方法也很好,速度也是极快的,不过这种方法要求客户端必须装了Excel才可以。期待各位的高见。