DataTable ---匯出Excel

來源:互聯網
上載者:User

標籤:

//mscorlib.dll, v4.0.0.0&&Microsoft.Office.Interop.Excel.dll, v14.0.0.0

/// <summary>
/// 匯出Excel
/// </summary>
/// <param name="dt_data">要匯出的資料表</param>

public void ExcelPort(DataTable dt_data)        {            try            {                                //表格控制項對象(方法見後面)                string fileName = ShowSaveFileDialog("Microsoft Excel Document", "Microsoft Excel|*.xls");                            if (string.IsNullOrEmpty(fileName)) return;                //建立Excel對象                System.Reflection.Missing miss = System.Reflection.Missing.Value;                //此處引用Microsoft.Office.Interop.Excel.dll, v14.0.0.0且必須與電腦安裝office達到一致(否則不能正常建立對象)                Microsoft.Office.Interop.Excel.Application xlapp = new Microsoft.Office.Interop.Excel.Application();
xlapp.Visible
= false; //是否顯示匯出過程 ,建議關閉,否則在匯出過程中滑鼠點擊Excel檔案時會出錯。 xlapp.UserControl = true; Microsoft.Office.Interop.Excel.Workbooks workbooks = xlapp.Workbooks; //載入模板(必須先製作好匯出模版,在此處引用) worKbooks.Add(url) url 為模版路徑 Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(Application.StartupPath.ToString() + ("\\Model\\modelNm.xls")); Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets; Microsoft.Office.Interop.Excel._Worksheet worksheet = null; int row = 0, column = 0; if (fileName == "") return; try { //選中第1個工作薄。並給活頁簿新增內容內容
//①表格頭設定
worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1);
// eg. 2015年9月30日 xxx worksheet.Cells[
1, 1] = DateTime.Now.Year + "年" + DateTime.Now.Month + "月" + DateTime.Now.Day +"日"+"xxx "; worksheet.Name = "TableNm";
//*xxx*為將xxx轉換為code條碼匯出 worksheet.Cells[
2, 3] = "*" + xxx + "*"; worksheet.Cells[3, 3] = xxx ; worksheet.Cells[4, 3] = xxx; worksheet.Cells[4, 6] = xxxx; row = dt_data.Rows.Count; column = dt_data.Columns.Count;
②表格主體內容設定
for (int i = 1; i <= row; i++) { int lint_row = i + 5; int dt_row = i - 1; worksheet.Cells[lint_row, 2] = dt_data.Rows[dt_row][columNm].ToString(); worksheet.Cells[lint_row, 3] = dt_data.Rows[dt_row][column].ToString(); worksheet.Cells[lint_row, 4] = dt_data.Rows[dt_row][column].ToString(); worksheet.Cells[lint_row, 5] = dt_data.Rows[dt_row][column].ToString(); worksheet.Cells[lint_row, 6] = dt_data.Rows[dt_row][column].ToString(); worksheet.Cells[lint_row, 7] = dt_data.Rows[dt_row][column].ToString(); } //儲存資料 workbook.RefreshAll(); //儲存資料 workbook.SaveCopyAs(fileName); //退出excel workbook.Close(false, miss, miss); DevExpress.XtraEditors.XtraMessageBox.Show("表格式資料已成功匯出!" + "\r\n檔案名稱:" + fileName, "", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message + ":" + ex.ToString()); } finally { xlapp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks); System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook); System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlapp); xlapp = null; GC.Collect(); } } catch (Exception ex) { MessageBox.Show(ex.Message + ":" + ex.ToString()); } }
//儲存對話方塊   System.Windows.Forms.dll, v4.0.0.0

/// <summary>
/// 儲存檔案對話方塊(儲存則返迴文件名,取消返回為“”)
/// </summary>
/// <param name="title">儲存對話方塊表單Caption</param>
/// <param name="filter">檔案檔案類型</param>
/// <returns>檔案名稱</returns>

///http://www.cnblogs.com/zlytu/archive/2013/04/10/3013254.html(詳)

 
public static string ShowSaveFileDialog(string title, string filter)        {            SaveFileDialog dlg = new SaveFileDialog();            string name = "Name" + System.DateTime.Now.ToString("yyyyMMddHHmmss", System.Globalization.DateTimeFormatInfo.InvariantInfo);            int n = name.LastIndexOf(".") + 1;            if (n > 0) name = name.Substring(n, name.Length - n);            //"Export To "            dlg.Title = "檔案儲存";
//檔案名稱 dlg.FileName
= name;
//檔案檔案類型(eg .Microsoft Excel|*.xls) dlg.Filter
= filter; if (dlg.ShowDialog() == DialogResult.OK) return dlg.FileName; return ""; }

 

Code39r

DataTable ---匯出Excel

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.