最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#導出Excel的幾種常見方式及詳細實現(xiàn)步驟

 更新時間:2023年06月16日 11:36:47   作者:老衲有點帥  
excel導出在C#代碼中應(yīng)用己經(jīng)很廣泛了,我這里就做些總結(jié),下面這篇文章主要給大家介紹了關(guān)于C#導出Excel的幾種常見方式及詳細實現(xiàn)步驟的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

常用Excel導出方式

在 C# 中,常用的Excel 文件導出 方式包括:

  1. 使用 Microsoft Office Interop Excel 組件:這是一種使用 Microsoft Excel 應(yīng)用程序?qū)ο竽P蛠韯?chuàng)建和編輯 Excel 文件的方式。它提供了強大的功能,但需要安裝 Microsoft Excel 或者 Microsoft Office 套件。
  2. 使用 NPOI 組件:NPOI 是一個 C#/.NET 平臺上的開源組件,它可以讀寫 Microsoft Office 格式的文檔,包括 Excel、Word 和 PowerPoint 等。相比于 Interop Excel 組件,NPOI 更加輕量級,不需要依賴于 Microsoft Excel 應(yīng)用程序。
  3. 使用 EPPlus 組件:EPPlus 是一個免費的開源組件,它可以創(chuàng)建和讀取 Excel 文件。它提供了一些方便的方法,如對單元格格式、圖表、公式等進行操作。EPPlus 支持 .NET Framework 3.5 及更高版本,并不需要依賴于 Microsoft Excel 應(yīng)用程序。
  4. 使用 ClosedXML 組件:ClosedXML 是一個簡單易用的開源組件,它可以讀取、創(chuàng)建和修改 Excel 文件。與 EPPlus 類似,它也提供了一些方便的方法來操縱 Excel 文件。ClosedXML 支持 .NET Framework 4.0 及更高版本。

以上是常用的幾種 C# 導出 Excel 文件的方式,每種方式都有其特點和優(yōu)缺點,選擇適合自己需求的方式進行開發(fā)即可。以下針對每種導出方式,羅列了具體步驟以及Demo。

1.使用 Microsoft Office Interop Excel 組件導出 Excel 文件

使用 Microsoft Office Interop Excel 組件導出 Excel 文件的步驟如下:

  1. 引用 Microsoft.Office.Interop.Excel 命名空間:在項目中添加對 Microsoft.Office.Interop.Excel 的引用,或者使用 NuGet 包管理器安裝它。
  2. 創(chuàng)建 Excel 應(yīng)用程序?qū)ο螅菏褂?Application 類創(chuàng)建一個 Excel 應(yīng)用程序?qū)ο蟆?/li>
  3. 創(chuàng)建工作簿對象:使用 Application.Workbooks.Add() 方法創(chuàng)建一個新的工作簿對象。
  4. 獲取工作表對象:使用 Workbook.Worksheets 屬性獲取工作表集合,并使用索引或名稱獲取工作表對象。
  5. 向單元格寫入數(shù)據(jù):使用 Worksheet.Cells 屬性獲取單元格對象,并使用 Range.Value 屬性或 Range.Formula 屬性向單元格寫入數(shù)據(jù)。
  6. 保存 Excel 文件:使用 Workbook.SaveAs() 方法將 Excel 文件保存到磁盤。
  7. 關(guān)閉 Excel 應(yīng)用程序和工作簿對象:使用 Workbook.Close() 方法關(guān)閉工作簿對象,并使用 Application.Quit() 方法關(guān)閉 Excel 應(yīng)用程序?qū)ο蟆?/li>
  8. 釋放資源:使用 Marshal.ReleaseComObject() 方法釋放 Excel 應(yīng)用程序?qū)ο蠛凸ぷ鞑緦ο蟮馁Y源。

下面是一個示例代碼,演示如何使用 Microsoft Office Interop Excel 組件導出 Excel 文件:

using System;
using System.Data;
using System.IO;
using Microsoft.Office.Interop.Excel;
namespace ExportExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建一個 DataTable 對象來存儲數(shù)據(jù)
            DataTable dataTable = new DataTable("MyData");
            // 添加列到 DataTable
            dataTable.Columns.Add("Name", typeof(string));
            dataTable.Columns.Add("Age", typeof(int));
            // 向 DataTable 中添加數(shù)據(jù)行
            dataTable.Rows.Add("John Doe", 30);
            dataTable.Rows.Add("Jane Smith", 25);
            // 使用 Microsoft Office Interop Excel 組件導出 Excel 文件
            Application excelApp = new Application();
            Workbook workbook = excelApp.Workbooks.Add();
            Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
            int row = 1;
            foreach (DataRow dataRow in dataTable.Rows)
            {
                worksheet.Cells[row, 1] = dataRow["Name"].ToString();
                worksheet.Cells[row, 2] = dataRow["Age"];
                row++;
            }
            // 將 Excel 文件保存到磁盤
            string fileName = @"C:\temp\MyExcelFile.xlsx";
            workbook.SaveAs(fileName);
            // 關(guān)閉 Excel 應(yīng)用程序和工作簿對象,并釋放資源
            workbook.Close();
            excelApp.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
        }
    }
}

在這個示例代碼中,我們使用 Application 類創(chuàng)建了一個 Excel 應(yīng)用程序?qū)ο螅⑹褂盟鼇韯?chuàng)建了一個新的工作簿對象。然后,我們使用 Workbook.Worksheets 屬性獲取工作表集合,并使用索引獲取了第一個工作表對象。接下來,我們使用 Worksheet.Cells 屬性獲取單元格對象,并使用 Range.Value 屬性或 Range.Formula 屬性向單元格寫入數(shù)據(jù)。最后,我們使用 Workbook.SaveAs() 方法將 Excel 文件保存到磁盤,關(guān)閉了工作簿對象和 Excel 應(yīng)用程序?qū)ο?,并釋放了它們的資源。 

2.使用 NPOI 組件導出 Excel 文件

使用 NPOI 組件導出 Excel 文件的步驟如下:

  1. 引用 NPOI 命名空間:在項目中添加對 NPOI 的引用,或者使用 NuGet 包管理器安裝它。
  2. 創(chuàng)建工作簿對象:使用 HSSFWorkbookXSSFWorkbook 類創(chuàng)建一個新的工作簿對象,分別對應(yīng)于 Excel 的 .xls 和 .xlsx 格式。
  3. 獲取工作表對象:使用 CreateSheet() 方法創(chuàng)建一個新的工作表對象,并設(shè)置工作表名稱。
  4. 設(shè)置單元格樣式:可以使用 CellStyle 類和 Font 類來設(shè)置單元格樣式。
  5. 向單元格寫入數(shù)據(jù):使用 CreateRow() 方法創(chuàng)建一個新的行對象,使用 CreateCell() 方法創(chuàng)建一個新的單元格對象,并使用 SetValue() 方法向單元格寫入數(shù)據(jù)。
  6. 保存 Excel 文件:使用 FileStream 類將 Excel 文件保存到磁盤。
  7. 釋放資源:使用 Dispose() 方法釋放工作簿對象和 FileStream 對象的資源。

下面是一個示例代碼,演示如何使用 NPOI 組件導出 Excel 文件:

using System;
using System.Data;
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
namespace ExportExcelDemo
{
? ? class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? // 創(chuàng)建一個 DataTable 對象來存儲數(shù)據(jù)
? ? ? ? ? ? DataTable dataTable = new DataTable("MyData");
? ? ? ? ? ? // 添加列到 DataTable
? ? ? ? ? ? dataTable.Columns.Add("Name", typeof(string));
? ? ? ? ? ? dataTable.Columns.Add("Age", typeof(int));
? ? ? ? ? ? // 向 DataTable 中添加數(shù)據(jù)行
? ? ? ? ? ? dataTable.Rows.Add("John Doe", 30);
? ? ? ? ? ? dataTable.Rows.Add("Jane Smith", 25);
? ? ? ? ? ? // 使用 NPOI 組件導出 Excel 文件
? ? ? ? ? ? IWorkbook workbook = new HSSFWorkbook();
? ? ? ? ? ? ISheet worksheet = workbook.CreateSheet("MySheet");
? ? ? ? ? ? int row = 0;
? ? ? ? ? ? foreach (DataRow dataRow in dataTable.Rows)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? IRow newRow = worksheet.CreateRow(row);
? ? ? ? ? ? ? ? newRow.CreateCell(0).SetCellValue(dataRow["Name"].ToString());
? ? ? ? ? ? ? ? newRow.CreateCell(1).SetCellValue(Convert.ToInt32(dataRow["Age"]));
? ? ? ? ? ? ? ? row++;
? ? ? ? ? ? }
? ? ? ? ? ? // 將 Excel 文件保存到磁盤
? ? ? ? ? ? string fileName = @"C:\temp\MyExcelFile.xls";
? ? ? ? ? ? using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? workbook.Write(fs);
? ? ? ? ? ? }
? ? ? ? ? ? // 釋放資源
? ? ? ? ? ? workbook.Dispose();
? ? ? ? }
? ? }
}

在這個示例代碼中,我們使用 HSSFWorkbook 類創(chuàng)建了一個新的工作簿對象,并使用它來創(chuàng)建了一個名為 "MySheet" 的工作表對象。然后,我們使用 CreateRow() 方法和 CreateCell() 方法創(chuàng)建了新的行對象和單元格對象,并使用 SetValue() 方法向單元格寫入數(shù)據(jù)。最后,我們使用 FileStream 類將 Excel 文件保存到磁盤,并使用 Dispose() 方法釋放工作簿對象的資源。如果需要生成 .xlsx 格式的文件,可以使用 XSSFWorkbook 類代替 HSSFWorkbook 類。

3.使用 EPPlus 組件導出Excel文件

使用 EPPlus 組件導出 Excel 文件的步驟如下:

  1. 引用 EPPlus 命名空間:在項目中添加對 EPPlus 的引用,或者使用 NuGet 包管理器安裝它。
  2. 創(chuàng)建工作簿對象:使用 ExcelPackage 類創(chuàng)建一個新的工作簿對象。
  3. 獲取工作表對象:使用 Workbook.Worksheets.Add() 方法創(chuàng)建一個新的工作表對象,并設(shè)置工作表名稱。
  4. 設(shè)置單元格樣式:可以使用 ExcelRange.Style 屬性來設(shè)置單元格樣式。
  5. 向單元格寫入數(shù)據(jù):使用 SetValue() 方法向單元格寫入數(shù)據(jù)。
  6. 保存 Excel 文件:使用 ExcelPackage.SaveAs() 方法將 Excel 文件保存到磁盤。
  7. 釋放資源:使用 Dispose() 方法釋放工作簿對象的資源。

下面是一個示例代碼,演示如何使用 EPPlus 組件導出 Excel 文件:

using System;
using System.Data;
using System.IO;
using OfficeOpenXml;
namespace ExportExcelDemo
{
? ? class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? // 創(chuàng)建一個 DataTable 對象來存儲數(shù)據(jù)
? ? ? ? ? ? DataTable dataTable = new DataTable("MyData");
? ? ? ? ? ? // 添加列到 DataTable
? ? ? ? ? ? dataTable.Columns.Add("Name", typeof(string));
? ? ? ? ? ? dataTable.Columns.Add("Age", typeof(int));
? ? ? ? ? ? // 向 DataTable 中添加數(shù)據(jù)行
? ? ? ? ? ? dataTable.Rows.Add("John Doe", 30);
? ? ? ? ? ? dataTable.Rows.Add("Jane Smith", 25);
? ? ? ? ? ? // 使用 EPPlus 組件導出 Excel 文件
? ? ? ? ? ? using (ExcelPackage excelPackage = new ExcelPackage())
? ? ? ? ? ? {
? ? ? ? ? ? ? ? ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("MySheet");
? ? ? ? ? ? ? ? int row = 1;
? ? ? ? ? ? ? ? foreach (DataRow dataRow in dataTable.Rows)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? worksheet.Cells[row, 1].Value = dataRow["Name"].ToString();
? ? ? ? ? ? ? ? ? ? worksheet.Cells[row, 2].Value = Convert.ToInt32(dataRow["Age"]);
? ? ? ? ? ? ? ? ? ? row++;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? // 將 Excel 文件保存到磁盤
? ? ? ? ? ? ? ? string fileName = @"C:\temp\MyExcelFile.xlsx";
? ? ? ? ? ? ? ? FileInfo fileInfo = new FileInfo(fileName);
? ? ? ? ? ? ? ? excelPackage.SaveAs(fileInfo);
? ? ? ? ? ? }
? ? ? ? ? ? // 釋放資源
? ? ? ? }
? ? }
}

在這個示例代碼中,我們使用 ExcelPackage 類創(chuàng)建了一個新的工作簿對象,并使用它來創(chuàng)建了一個名為 "MySheet" 的工作表對象。然后,我們使用 Cells 屬性獲取單元格對象,并使用 SetValue() 方法向單元格寫入數(shù)據(jù)。最后,我們使用 ExcelPackage.SaveAs() 方法將 Excel 文件保存到磁盤,并使用 Dispose() 方法釋放工作簿對象的資源。

4. 使用 ClosedXML 組件導出 Excel 文件

使用 ClosedXML 組件導出 Excel 文件的步驟如下:

  1. 引用 ClosedXML 命名空間:在項目中添加對 ClosedXML 的引用,或者使用 NuGet 包管理器安裝它。
  2. 創(chuàng)建工作簿對象:使用 XLWorkbook 類創(chuàng)建一個新的工作簿對象。
  3. 獲取工作表對象:使用 AddWorksheet() 方法創(chuàng)建一個新的工作表對象,并設(shè)置工作表名稱。
  4. 設(shè)置單元格樣式:可以使用 IXLStyle 接口和 IXLFont 接口來設(shè)置單元格樣式。
  5. 向單元格寫入數(shù)據(jù):使用 SetValue() 方法向單元格寫入數(shù)據(jù)。
  6. 保存 Excel 文件:使用 SaveAs() 方法將 Excel 文件保存到磁盤。
  7. 釋放資源:使用 Dispose() 方法釋放工作簿對象的資源。

下面是一個示例代碼,演示如何使用 ClosedXML 組件導出 Excel 文件:

using System;
using System.Data;
using System.IO;
using ClosedXML.Excel;
namespace ExportExcelDemo
{
? ? class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? // 創(chuàng)建一個 DataTable 對象來存儲數(shù)據(jù)
? ? ? ? ? ? DataTable dataTable = new DataTable("MyData");
? ? ? ? ? ? // 添加列到 DataTable
? ? ? ? ? ? dataTable.Columns.Add("Name", typeof(string));
? ? ? ? ? ? dataTable.Columns.Add("Age", typeof(int));
? ? ? ? ? ? // 向 DataTable 中添加數(shù)據(jù)行
? ? ? ? ? ? dataTable.Rows.Add("John Doe", 30);
? ? ? ? ? ? dataTable.Rows.Add("Jane Smith", 25);
? ? ? ? ? ? // 使用 ClosedXML 組件導出 Excel 文件
? ? ? ? ? ? using (XLWorkbook workbook = new XLWorkbook())
? ? ? ? ? ? {
? ? ? ? ? ? ? ? IXLWorksheet worksheet = workbook.AddWorksheet("MySheet");
? ? ? ? ? ? ? ? int row = 1;
? ? ? ? ? ? ? ? foreach (DataRow dataRow in dataTable.Rows)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? worksheet.Cell(row, 1).Value = dataRow["Name"].ToString();
? ? ? ? ? ? ? ? ? ? worksheet.Cell(row, 2).Value = Convert.ToInt32(dataRow["Age"]);
? ? ? ? ? ? ? ? ? ? // 設(shè)置單元格樣式
? ? ? ? ? ? ? ? ? ? worksheet.Cell(row, 2).Style.Font.Bold = true;
? ? ? ? ? ? ? ? ? ? worksheet.Cell(row, 2).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right;
? ? ? ? ? ? ? ? ? ? row++;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? // 將 Excel 文件保存到磁盤
? ? ? ? ? ? ? ? string fileName = @"C:\temp\MyExcelFile.xlsx";
? ? ? ? ? ? ? ? workbook.SaveAs(fileName);
? ? ? ? ? ? }
? ? ? ? ? ? // 釋放資源
? ? ? ? }
? ? }
}

在這個示例代碼中,我們使用 XLWorkbook 類創(chuàng)建了一個新的工作簿對象,并使用它來創(chuàng)建了一個名為 "MySheet" 的工作表對象。然后,我們使用 Cell() 方法獲取單元格對象,并使用 SetValue() 方法向單元格寫入數(shù)據(jù)。接著,我們使用 IXLStyle 接口和 IXLFont 接口來設(shè)置單元格樣式。最后,我們使用 SaveAs() 方法將 Excel 文件保存到磁盤,并使用 Dispose() 方法釋放工作簿對象的資源。 

總結(jié)

到此這篇關(guān)于C#導出Excel的幾種常見方式及詳細實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)C#導出Excel常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中的多線程超時處理實踐方案

    C#中的多線程超時處理實踐方案

    這篇文章主要介紹了C#中的多線程超時處理實踐方案,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-01-01
  • C#Winform窗口移動方法

    C#Winform窗口移動方法

    今天小編就為大家分享一篇C#Winform窗口移動方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • C#用NPOI導出導入Excel幫助類

    C#用NPOI導出導入Excel幫助類

    這篇文章主要為大家詳細介紹了C#?NPOI導出導入Excel幫助類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#實現(xiàn)簡易畫圖板的示例代碼

    C#實現(xiàn)簡易畫圖板的示例代碼

    這篇文章主要介紹了C#實現(xiàn)簡易畫圖板的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • c#隊列Queue學習示例分享

    c#隊列Queue學習示例分享

    隊列Queue,先進先出,先生產(chǎn)的貨物先出貨,后生產(chǎn)的貨物后出貨,下面看示例學習c#隊列Queue
    2013-12-12
  • 淺談C#中對引用類型的誤解

    淺談C#中對引用類型的誤解

    這篇文章主要介紹了淺談C#中對引用類型的誤解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • C#執(zhí)行js動態(tài)編譯的方法

    C#執(zhí)行js動態(tài)編譯的方法

    這篇文章主要介紹了C#執(zhí)行js動態(tài)編譯的方法,是涉及動態(tài)編譯腳本非常實用的技巧,需要的朋友可以參考下
    2015-01-01
  • c#實現(xiàn)網(wǎng)站監(jiān)控查看是否正常示例

    c#實現(xiàn)網(wǎng)站監(jiān)控查看是否正常示例

    這篇文章主要介紹了使用c#監(jiān)控網(wǎng)站是否正常的功能示例,大家參考使用吧
    2014-01-01
  • 淺拷貝和深拷貝深入理解(shallow copy VS deep copy)

    淺拷貝和深拷貝深入理解(shallow copy VS deep copy)

    淺拷貝和深拷貝深入理解(shallow copy VS deep copy) 本文重點討論引用類型變量的拷貝機制和實現(xiàn)
    2014-01-01
  • C#實現(xiàn)位圖轉(zhuǎn)換成圖標的方法

    C#實現(xiàn)位圖轉(zhuǎn)換成圖標的方法

    這篇文章主要介紹了C#實現(xiàn)位圖轉(zhuǎn)換成圖標的方法,可實現(xiàn)將bmp格式位圖轉(zhuǎn)換成ico格式圖標的功能,需要的朋友可以參考下
    2015-06-06

最新評論

宣武区| 四平市| 德令哈市| 印江| 清原| 汝南县| 洛浦县| 平原县| 大同县| 钟祥市| 福海县| 昌邑市| 蒲城县| 汽车| 古田县| 瑞金市| 房产| 桂平市| 龙井市| 泰宁县| 资中县| 万盛区| 鄂托克旗| 大足县| 长寿区| 开原市| 额济纳旗| 庄河市| 康平县| 宁南县| 齐齐哈尔市| 合水县| 宕昌县| 五河县| 桦川县| 阿克陶县| 长沙县| 临沂市| 晋江市| 张家界市| 黄平县|