C# 匯出資料到Excel模板中

來源:互聯網
上載者:User

今天做報表的時候遇到了多表頭的問題,而且相應的報表的格式都一樣。所以就採用了報表範本的方式來進行。

第一步:在開發的當前項目中引入:Microsoft.Office.Interop.Excel;System.Reflection;命名空間。

第二步:擷取要匯出的資料;

第三步:建立一個Excel 應用程式:

  //需要添加 Microsoft.Office.Interop.Excel引用   Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();

如果,app = null ,則代表格服務器上“伺服器上缺少Excel組件,需要安裝Office軟體”;

第四步:設定app屬性,及其進行如下操作:

  app.Visible = false;  app.UserControl = true;  Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;  Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(Server.MapPath("~/Template.xlsx")); //載入模板  Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;  Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一個工作薄。  if (worksheet == null)      return;  //工作薄中沒有工作表.

第五步:根據獲得的資料,進行資料的插入(到Excel模板中);

            //寫入資料,Excel索引從1開始。            for (int i = 1; i <= rowCount; i++)            {                int row_ = 2 + i;  //Excel模板上表頭和標題列佔了2行,根據實際模板需要修改;                int dt_row = i - 1; //dataTable的行是從0開始的。                 worksheet.Cells[row_, 1] = i.ToString();                worksheet.Cells[row_, 2] = dt.Rows[dt_row]["姓名"].ToString();                worksheet.Cells[row_, 3] = dt.Rows[dt_row]["學號"].ToString();            }

第六步:設定已匯入的資料的樣式:

            //調整Excel的樣式。            Microsoft.Office.Interop.Excel.Range rg = worksheet.Cells.get_Range("A3", worksheet.Cells[rowCount + 2, 8]);            rg.Borders.LineStyle = 1; //儲存格加邊框。            worksheet.Columns.AutoFit(); //自動調整列寬。

第七步:對已匯出好的Excel報表進行儲存到伺服器,以便進行下載。

            //Missing 在System.Reflection命名空間下。            string savaPath = "~/Temp/T1_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";            workbook.SaveAs(Server.MapPath(savaPath), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

詳細請看源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.