DataTable 导到Excel

/// <summary>

/// 将DataTalbe导出到Excel中

/// </summary>

/// <param name="dt"></param>

/// <param name="ProjectName">生成的Excel的Sheet的名字</param>

/// <param name="filePath">保存的路径</param>

public static void Export(System.Data.DataTable dt, string filePath)

{

    if (dt == null)

    {

        throw new Exception("数据表中无数据");

    }

    int eRowIndex = 1;

    int eColIndex = 1;

    int cols = dt.Columns.Count;

    int rows = dt.Rows.Count;

    Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();

    Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);

    try

    {

        //列名的处理

        for (int i = 0; i < cols; i++)

        {

            xlApp.Cells[eRowIndex, eColIndex] = dt.Columns[i].ColumnName;

            eColIndex++;

        }

        //列名加粗显示

        xlApp.get_Range(xlApp.Cells[eRowIndex, 1], xlApp.Cells[eRowIndex, cols]).Font.Bold = true;

        xlApp.get_Range(xlApp.Cells[eRowIndex, 1], xlApp.Cells[rows + 1, cols]).Font.Name = "Arial";

        xlApp.get_Range(xlApp.Cells[eRowIndex, 1], xlApp.Cells[rows + 1, cols]).Font.Size = "10";

        eRowIndex++;

        for (int i = 0; i < rows; i++)

        {

            eColIndex = 1;

            for (int j = 0; j < cols; j++)

            {

                xlApp.Cells[eRowIndex, eColIndex] = dt.Rows[i][j].ToString();

                eColIndex++;

            }

            eRowIndex++;

        }

        //控制单元格中的内容。

        xlApp.Cells.EntireColumn.AutoFit();

        xlApp.DisplayAlerts = false;

        xlBook.SaveCopyAs(filePath);

        xlApp.Workbooks.Close();

    }

    catch

    {

        throw;

    }

    finally

    {

        xlApp.Quit();

        //杀掉Excel进程。

        GC.Collect();

    }

}

注意:using Microsoft.Office.Interop.Excel;  VS2010 下 添加引用  COM选项中找Microsoft Office 12.0 Object Library  Microsoft Excel 14.0 Object Library

引用目录下出现Microsoft.Office.Core     Microsoft.Office.Interop.Excel

如果代码中出现  Excel.ApplicationClass()无法互嵌套操作类型 请改用适用的接口

把引用的Microsoft.Office.Interop.Excel 右击属性 嵌入互操作类型改为false即可

时间: 2024-12-09 03:53:25

DataTable 导到Excel的相关文章

DataTable导出到Excel

static DataTable GetTable() { // // Here we create a DataTable with four columns. // DataTable table = new DataTable(); table.Columns.Add("Dosage", typeof(int)); table.Columns.Add("Drug", typeof(string)); table.Columns.Add("Patien

带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel(转)

步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript"> //导出Excel function exportExcel() { var data = ""; $("#divRptTable").find("table").find("tr").each(function

把DataTable导出为Excel文件

今天项目里遇到了需要把DataTable导出为Excel的问题将解决方案记录在园子备忘 需要一些东西第三方的类库Aspose.Cells此处随意找个下载链接:http://www.cr173.com/soft/66096.html本人不保证该链接的合法性和有效性 说重点,上Demo public bool ExportAsExcel(string URI, DataSet ds) { Aspose.Cells.Workbook wk = new Aspose.Cells.Workbook();

DataTable 导出到 Excel 类

底层类: #region DataTable 导出到 Excel /// <summary> /// DataTable 导出到 Excel /// </summary> /// <param name="dt">数据表</param> /// <param name="captions">要导出的列标题</param> /// <param name="fieldNames&q

DataTable导出到Excel文件

调用方法: ExcelHelper.Export(dtTemp, "供应商App", DlgSave.FileName, "物料文档" , new string[10] { "MatterCode", "MatterName", "MatterType", "MainUnit", "TagModelName", "LotName", "F

c# DataTable导出为excel

/// <summary> /// 将DataTable导出为Excel文件(.xls) /// </summary> /// <param name="dt">要导出的DataTable</param> public static void ExportToExcel(System.Data.DataTable dt) { if (dt == null) return; Microsoft.Office.Interop.Excel.Ap

C# datatable 导出到Excel

datatable导出到Excel /// <summary> /// 将DataTable导出为Excel文件(.xls) /// </summary> /// <param name="dt">要导出的DataTable</param> public static void ErrorCrd_ExportToExcel(DataTable dt) { if (dt == null) return; Microsoft.Office.I

Datatable转换成excel并实现导出功能,导出到服务端,提供客户端下载

好久没有写笔记了,写得不好,大家将就看看吧! 这是一个关于导出Excel到服务端指定的文件中供客户去下载的一个方法:首先要获取保存服务器的物理路径,也就是绝对路径,可以使用 HttpContext.Current.Server.MapPath(".");可以获取到.最方便的就是直接用datatable转成Excel格式,当生成文件时,同时向数据库插入一条记录: 代码: public void DataTableTransmissionExcel(bool withHeaders,Dat

将DataTable导出为Excel文件的方法

 需求:前台点击某个按钮,在后台从数据库中获取某DataTable数据到处成Excel文件. 1.Asp按钮控件 两个按钮,分别调用两种导出Excel文件的后台方法. <%--第一种方法--%> <form id="form1" runat="server"> <div> <asp:Button runat="server" OnClick="Btn1_Click" ID="