源代码及示例下载地址:http://download.csdn.net/source/1794131 /// <summary> /// 标题:将 DataSet, DataTable 导出到 Excel /// 作者:肖小勇 /// 日期:2009-10-23 /// 描述:对之前做的导出 Excel 做调整以支持对 DataSet 及 DataTable 的导出; /// DataSet 导出时可以指定需要导出的 DataTable /// DataTable 导出时可以指定需要导出的 DataColumn 及自定义导出后的列名 /// </summary> public class ExcelExportProvider { private static object missing = Type.Missing; #region " ExportToExcel " /// <summary> /// 将 /// </summary> /// <param name="fDataSet"></param> /// <param name="fFileName"></param> public static void ExportToExcel(DataSet fDataSet, String fFileName) { List<DataTableExportOptions> options = new List<DataTableExportOptions>(); foreach (DataTable dataTable in fDataSet.Tables) options.Add(new DataTableExportOptions(dataTable)); ExportToExcel(options, fFileName); } public static void ExportToExcel(DataTable fDataTable, String fFileName) { ExportToExcel(new DataTableExportOptions(fDataTable), fFileName); } public static void ExportToExcel(DataTableExportOptions fOption, String fFileName) { ExportToExcel(new List<DataTableExportOptions>(new DataTableExportOptions[] { fOption }), fFileName); } /// <summary> /// 将 DataTable 导出到 Excel /// </summary> /// <param name="fOptions"></param> public static void ExportToExcel(List<DataTableExportOptions> fOptions, String fFileName) { if (fOptions == null || fOptions.Count == 0) return; try { if (File.Exists(fFileName)) File.Delete(fFileName); } catch { return; } Excel.Application application = new Excel.Application(); application.Visible = false; application.UserControl = false; Excel.Workbook workBook = (Excel.Workbook)(application.Workbooks.Add(missing)); try { #region " 根据需要导出的 DataTable 数量,预先增加不足的工作表或多余的工作表 "