C# Winform Excel的導出,根據excel模板導出數據


namespace dxhbskymDemo
{
    public partial class ExcelForm : DevExpress.XtraEditors.XtraForm
    {
       public ExcelForm()
        {
            InitializeComponent();

        }
       #region 導出Excel
        
       //導出按鈕
        private void sbtnDaochu_Click(object sender, EventArgs e)
        {
            string fileName = "";//要保存的excel文件名
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "導出1997-2003版本Excel(*.xls)|*.xls,導出2007版本Excel(*.xlsx)|*.xlsx";

       //擴展名 sfd.FileName = "河北省項目匯總表";// if (sfd.ShowDialog() == DialogResult.OK) { fileName = sfd.FileName; //導入 outPutExcel(fileName); } }
    //導出Excel的方法
        private void outPutExcel(string saveFilepath)
        {
            bool isShowExcel = false;

            DataTable dt = new DataTable();//將數據庫取出的數據源轉成DataTable
           
            if (dt == null)
            {
                return;
            }
            if (dt.Rows.Count == 0)
            {
                return;
            }
            Missing miss = Missing.Value;
            Excel.Application xlApp = new Excel.Application();
            
            if (xlApp == null)
            {
                XtraMessageBox.Show("請確保您的電腦已經安裝Excel!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            //xlApp.UserControl = true;
            Excel.Workbooks workBooks = xlApp.Workbooks;
            //Excel.Workbook workBook = workBooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);//創建新的
            Excel.Workbook workBook = workBooks.Add(System.AppDomain.CurrentDomain.BaseDirectory + "excel\\項目匯總表.xls");//根據現有excel模板產生新的Workbook
            Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Worksheets[1];//獲取sheet1
 xlApp.DisplayAlerts = false;//保存Excel的時候,不彈出是否保存的窗口直接進行保存
workSheet.get_Range("A3", "B3").Merge(workSheet.get_Range("A3", "B3").MergeCells);//合並單元格 if (workSheet == null) { XtraMessageBox.Show("請確保您的電腦已經安裝Excel!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } try { Excel.Range range=null; xlApp.Visible = isShowExcel;//若是true,則在導出的時候會顯示excel界面 int totalCount = dt.Rows.Count; workSheet.Cells[1, 1] = "河北省石家庄市項目匯總表";//導出標題 //寫入數值 for (int i = 0; i < dt.Rows.Count; i++) { workSheet.Cells[i + 4, 1] = dt.Rows[i]["xmxh"];//項目序號 //workSheet.Cells[5,1]=””;//表示第五行與第一列交點的那個單元格坐標
                    workSheet.Cells[i + 4, 2] = dt.Rows[i]["xmmc"];//項目名稱
                 ((Excel.Range)workSheet.Cells[i+4, 2]).ColumnWidth = 12;//設置列寬
                    
                    workSheet.Cells[i + 4, 3] = dt.Rows[i]["bz"];//備注

                    
                }

          //計算sum和
          Excel.Range range2 = workSheet.get_Range("C9", Type.Missing);
          range2.Formula = "=SUM(C4:C8)"; 
          range2.Calculate();


         workBook.SaveAs(saveFilepath,Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                //workSheet.SaveAs(saveFilepath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                workBooks.Close();

            }
            catch (Exception ex)
            {
                XtraMessageBox.Show("Excel導出失敗,錯誤:" + ex.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                xlApp.Quit();
                regExpre.KillExcelProcess();
            }
            finally
            {
                xlApp.Quit();
                regExpre.KillExcelProcess();
            }
        }

        #endregion

    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM