Exemple #1
0
    /// <summary>
    /// 直接创建Excel表
    /// </summary>
    /// <param name="dtSource">数据源DataTable</param>
    /// <param name="filePath">保存路径</param>
    /// <param name="drTitle">标题DataRow</param>
    /// <param name="TableName">Excel表头</param>
    /// <returns></returns>
    public static bool Save(System.Data.DataTable dtSource, string filePath, System.Data.DataRow drTitle, string TableName)
    {
        Excel.Application app = new Excel.Application();//EXCEL实例
        try
        {
            app.Visible = false;
            Workbook  wBook  = app.Workbooks.Add(true);
            Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
            if (dtSource.Rows.Count > 0)
            {
                int row = dtSource.Rows.Count + 1;
                int col = dtSource.Columns.Count + 1;


                for (int i = 0; i < row; i++)
                {
                    for (int j = 0; j < col; j++)
                    {
                        string str = dtSource.Rows[i][j].ToString();
                        wSheet.Cells[i + 3, j + 1] = str;
                    }
                }
            }
            int size = dtSource.Columns.Count;
            for (int i = 0; i < size; i++)
            {
                wSheet.Cells[2, 1 + i] = drTitle[i].ToString();
            }

            wSheet.get_Range(wSheet.Cells[1, 0], wSheet.Cells[1, size]).Merge(Type.Missing);
            wSheet.Cells[1, 1] = TableName;

            //设置禁止弹出保存和覆盖的询问提示框
            app.DisplayAlerts          = false;
            app.AlertBeforeOverwriting = false;
            //保存工作簿
            wBook.Save();
            //保存excel文件
            app.Save(filePath);
            app.SaveWorkspace(filePath);
            app.Quit();
            app = null;
            return(true);
        }
        catch
        {
            return(false);
        }
        finally
        {
        }
    }