这个问题是老生常谈了,网络上也有很多相关的代码。关于导出的例子,绝大部分都是用EXCEL.DLL这个COM组件来创建Excel.Application并进行数据填充。缺点是运行该程序的电脑必须安装EXCEL才能用。这个问题很让人恼火,如果客户用的是WPS,你不能强制他在装个EXCEL吧。我觉得EXCEL导出的最佳解决方法应该是生成XML格式的XLS文档,操作文本,简单方便,而且不需要安装任何COM组件。
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <Worksheet ss:Name="tt">
  <Table>
   <Row>
    <Cell><Data ss:Type="String">Hello!World!</Data></Cell>
   </Row>
  </Table>
 </Worksheet>
</Workbook>
至于读取的例子,网上推荐的是用OLEDB连接EXCEL。这个方法是很好,不用安装EXCEL,但是缺点是只能读标准EXCEL文件。对于上面所说的XML格式的XLS文档和TXT格式(用TAB分隔数据)的XLS文档却毫无办法。尤其是当你程序生成的是XML格式的XLS文档,却没办法把导出的数据再读入程序,会被用户笑掉大牙。大家有没有什么好的建议,说来看看吧。