1. 程式人生 > >C# 匯出 Excel 封裝類 程式碼

C# 匯出 Excel 封裝類 程式碼

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.Office.Interop.Excel; namespace Common {     public class Excel     {         /// <summary>         /// DataGridView匯出Excel         /// </summary>         /// <param name="strCaption">Excel檔案中的標題</param>         /// <param name="myDGV">DataGridView 控制元件</param>         /// <returns>0:成功;1:DataGridView中無記錄;2:Excel無法啟動;9999:異常錯誤</returns>         public int ExportExcel(string strCaption, DataGridView myDGV, SaveFileDialog saveFileDialog)         {             int result = 9999;             //儲存             saveFileDialog.Filter = "Execl files (*.xlsx)|*.xlsx";             saveFileDialog.FilterIndex = 0;             saveFileDialog.RestoreDirectory = true;             //saveFileDialog.CreatePrompt = true;             saveFileDialog.Title = "Export Excel File";             if (saveFileDialog.ShowDialog() == DialogResult.OK)             {                 if (saveFileDialog.FileName == "")                 {                     MessageBox.Show("請輸入儲存檔名!");                     saveFileDialog.ShowDialog();                 }                 // 列索引,行索引,總列數,總行數                 int ColIndex = 0;                 int RowIndex = 0;                 int ColCount = myDGV.ColumnCount;                 int RowCount = myDGV.RowCount + 1;                 if (myDGV.RowCount == 0)                 {                     result = 1;                 }                 // 建立Excel物件                 Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();                 if (xlApp == null)                 {                     result = 2;                 }                 try                 {                     // 建立Excel工作薄                     Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);                     Microsoft.Office.Interop.Excel.Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets[1];                     // 設定標題                     Microsoft.Office.Interop.Excel.Range range = xlSheet.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, ColCount]); //標題所佔的單元格數與DataGridView中的列數相同                     range.MergeCells = true;                     xlApp.ActiveCell.FormulaR1C1 = strCaption;                     xlApp.ActiveCell.Font.Size = 20;                     xlApp.ActiveCell.Font.Bold = true;                     xlApp.ActiveCell.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;                     range.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;                     range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;                     //range.NumberFormatLocal = "@";     //設定單元格格式為文字                     // 建立快取資料                     object[,] objData = new object[RowCount + 1, ColCount];                     //獲取列標題                     foreach (DataGridViewColumn col in myDGV.Columns)                     {                         objData[RowIndex, ColIndex++] = col.HeaderText;                     }                     // 獲取資料                     for (RowIndex = 1; RowIndex < RowCount; RowIndex++)                     {                         for (ColIndex = 0; ColIndex < ColCount; ColIndex++)                         {                             //這裡就是驗證DataGridView單元格中的型別,如果是string或是DataTime型別,則在放入快取時在該內容前加入" ";                             if (myDGV[ColIndex, RowIndex - 1].ValueType == typeof(string)||myDGV[ColIndex, RowIndex - 1].ValueType == typeof(DateTime))                             {                                 objData[RowIndex, ColIndex] = " " + myDGV[ColIndex, RowIndex - 1].Value;                             }                             else                             {                                 object obj;                                 if (null == myDGV[ColIndex, RowIndex - 1].Value)                                 {                                     obj = myDGV[ColIndex, RowIndex - 1].FormattedValue;                                 }                                 else                                 {                                     obj = myDGV[ColIndex, RowIndex - 1].Value;                                 }                                 objData[RowIndex, ColIndex] = obj;                             }                         }                         System.Windows.Forms.Application.DoEvents();                     }                     // 寫入Excel                     range = xlSheet.get_Range(xlApp.Cells[2, 1], xlApp.Cells[RowCount + 1, ColCount]);                     range.NumberFormatLocal = "@";     //設定單元格格式為文字                     range.Value2 = objData;                     xlBook.Saved = true;                     xlBook.SaveCopyAs(saveFileDialog.FileName.Replace(".xlsx", "") + ".xlsx");                 }                 catch                 {                     result = 9999;                 }                 finally                 {                     xlApp.Quit();                     GC.Collect(); //強制回收                 }                 //返回值                 result = 0;             }             return result;         }     } }

相關推薦

C# 匯出 Excel 封裝 程式碼

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.

POI中HSSFWorkbook匯出excel封裝的工具

     在實際中匯出excel非常常見,於是自己封裝了一個匯出資料到excel的工具類,先附上程式碼,最後會寫出例項和解釋。   程式碼中依賴了slf4j日誌包,commons-io包的IOUtils關閉流,commons-lang和commons-collections包等包。 package

PHP excel匯出資料封裝

1.首先下載PHPexcel類   下載地址https://archive.codeplex.com/?p=phpexcel 將下載好的檔案放在vendor下取名excel   2.封裝匯出類 <?php /** *匯出exc

C#匯出Excel後關閉程序EXCEL.EXE

在C#中使用Microsoft.Office.Interop.Execl 匯出excel 表格時,將以下兩個屬性畝後,在導完後, Excel.exe 程序無法關閉。 // excel app 是否可見app.Visible = false;  // app 

C#匯出 Excel 時, 生成 CheckBox 控制元件

在使用 Microsoft.Office.Interop.Excel 元件匯出Excel 表格時,要把匯出前的  CheckBox 控制元件一同匯出到 excel 表格中,對於這個功能 看似很簡單,但 Microsoft.Office.Interop

NPOI匯入匯出Excel工具

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Web;

機房---不同窗體呼叫模組中匯出excel表格的程式碼

第一步: Public c As Form 第二步:注意c的位置 Public Sub export() Dim xlapp As Excel.Application '宣告excel物件 Dim xlbook As Excel.Workboo

C# 匯出excel後,刪除該檔案提示 正由另一程序使用,因此該程序無法訪問此檔案

原始碼 path = Server.MapPath("~/TemporaryFile/"); if (false == System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(p

C# 匯出excel的壓縮包到瀏覽器頁面

需求背景:TCX_1710專案產品質量匯出功能,客戶希望每個總成匯出到一個Excel表中 實現分析:客戶選擇時間段,點選匯出按鈕,預設匯出開始時間當天的資料,每個總成一個Excel,將各個Excel打包壓縮,返回壓縮包到瀏覽器頁面供客戶下載 控制器類:     /// <summary

適用於主流瀏覽器匯出Excel表格的程式碼

適用於主流瀏覽器匯出Excel表格的程式碼 問題描述: 有時候寫專案會遇到在網頁點選按鈕可以把網頁上顯示的table表格資料從瀏覽器上直接下載下來, 優點是使用者可以自由選擇有價值的資料進行下載到使用者本地然後用Excel軟體進行資料的各種操作. 有了需求,那麼問題就來了,怎樣寫適用

asp.net 利用NPOI匯出Excel通用

解決中文檔名儲存Excel亂碼問題,主要是判斷火狐或者IE瀏覽器,然後做對應的判斷處理,核心程式碼如下: System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"; //

Java使用POI匯出Excel工具

自行匯入poi3.9的jar包 工具類: package com.cpic.caf.template.home.util; import java.io.BufferedOutputStream; import java.io.FileNotFoundException; imp

java 匯入匯出Excel工具ExcelUtil

前段時間做的分散式整合平臺專案中,許多模組都用到了匯入匯出Excel的功能,於是決定封裝一個ExcelUtil類,專門用來處理Excel的匯入和匯出 本專案的持久化層用的是JPA(底層用hibernate實現),所以匯入和匯出也都是基於實體類的。 在編寫Ex

cppodbc--c++的odbc封裝

近日閒暇時研究了一下linux下的開源專案unixodbc,使用起來很是方便。現在總結一下,以饗讀者。 關於ODBC的介紹,在網上找了一段比較經典的解釋:ODBC 是Open Database Connect 即開放資料庫互連的簡稱,它是由Microsoft 公司於1991

C# 匯出excel並設定格式

一.生成Exel的方法 生成Excel的方法為呼叫本地Office COM元件,操作Excel。新建專案後,新增對應Office版本的Microsoft.Office.Interop.Excel的引用,如圖1-1所示。 圖1-1 新增Microsoft.Office.Interop.Excel引用 為方

C# 匯出Excel "正在中止執行緒" 錯誤

匯出Excel相信很多人都用過,但是我卻遇到了一個問題 “正在中止執行緒” 原始碼如下: public static void ExportExcel(string fileName, GridView gvMain)        {            //當前對話  

Java使用POI匯出Excel工具(反射)

pom.xml: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId&g

poi 匯出Excel 工具

package com.nisco.dms.util; import java.io.OutputStream; import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.

Java利用POI實現匯入匯出Excel表格示例程式碼

介紹Jakarta POI 是一套用於訪問微軟格式文件的Java API。Jakarta POI有很多元件組成,其中有用於操作Excel格式檔案的HSSF和用於操作Word的HWPF,在各種元件中目前只有用於操作Excel的HSSF相對成熟。官方主頁http://poi.ap

c#匯出Excel

1、方法一:後臺為主要操作 後臺方法 using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; public string ExportList(Report entity) {   &n