欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

常用Excel導(dǎo)出方式

在 C# 中,常用的Excel 文件導(dǎo)出 方式包括:

  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# 導(dǎo)出 Excel 文件的方式,每種方式都有其特點和優(yōu)缺點,選擇適合自己需求的方式進行開發(fā)即可。以下針對每種導(dǎo)出方式,羅列了具體步驟以及Demo。

1.使用 Microsoft Office Interop Excel 組件導(dǎo)出 Excel 文件

使用 Microsoft Office Interop Excel 組件導(dǎo)出 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 組件導(dǎo)出 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 組件導(dǎo)出 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 組件導(dǎo)出 Excel 文件

使用 NPOI 組件導(dǎo)出 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 組件導(dǎo)出 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 組件導(dǎo)出 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 組件導(dǎo)出Excel文件

使用 EPPlus 組件導(dǎo)出 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 組件導(dǎo)出 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 組件導(dǎo)出 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 組件導(dǎo)出 Excel 文件

使用 ClosedXML 組件導(dǎo)出 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 組件導(dǎo)出 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 組件導(dǎo)出 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#導(dǎo)出Excel的幾種常見方式及詳細實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)C#導(dǎo)出Excel常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# / VB.NET 在PPT中創(chuàng)建、編輯PPT SmartArt圖形的方法詳解

    C# / VB.NET 在PPT中創(chuàng)建、編輯PPT SmartArt圖形的方法詳解

    本文介紹通過C#和VB.NET程序代碼來創(chuàng)建和編輯PPT文檔中的SmartArt圖形。文中將分兩個操作示例來演示創(chuàng)建和編輯結(jié)果,需要的朋友可以參考下
    2020-10-10
  • C#中4種深拷貝方法介紹

    C#中4種深拷貝方法介紹

    這篇文章主要介紹了C#中4種深拷貝方法介紹,本文講解了利用反射實現(xiàn)、利用xml序列化和反序列化實現(xiàn)、利用二進制序列化和反序列化實現(xiàn)、利用silverlight DataContractSerializer實現(xiàn),用于在silverlight 客戶端使用等4種方法,需要的朋友可以參考下
    2015-06-06
  • WPF中實現(xiàn)彈出進度條窗口的示例詳解

    WPF中實現(xiàn)彈出進度條窗口的示例詳解

    這篇文章主要為大家詳細介紹了如何WPF中實現(xiàn)彈出進度條窗口,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • c#入門之分支語句使用方法(三元運算符、if語句、switch語句)

    c#入門之分支語句使用方法(三元運算符、if語句、switch語句)

    這篇文章主要介紹了c#入門之分支語句使用方法,包括三元運算符、if語句、switch語句,需要的朋友可以參考下
    2014-04-04
  • 學(xué)會使用C#異常

    學(xué)會使用C#異常

    在C#中,程序中在運行時出現(xiàn)的錯誤,會不斷在程序中進行傳播,這種機制稱為“異常”。 異常通常由錯誤的代碼引發(fā),并由能夠更正錯誤的代碼進行catch。本文將對C#異常簡要分析說明,下面就跟著小編一起來看下吧
    2016-12-12
  • C#多線程之取消架構(gòu)介紹

    C#多線程之取消架構(gòu)介紹

    這篇文章介紹了C#多線程之取消架構(gòu),文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 使用C#自制一個Windows安裝包的詳細過程

    使用C#自制一個Windows安裝包的詳細過程

    這篇文章主要介紹了如何使用C#自制一個Windows安裝包,文中通過圖文結(jié)合的方式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • 基于C#檢測敏感詞功能

    基于C#檢測敏感詞功能

    這篇文章主要為大家詳細介紹了如何基于C#實現(xiàn)檢測敏感詞功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • C#無損轉(zhuǎn)換Image為Icon的方法

    C#無損轉(zhuǎn)換Image為Icon的方法

    這篇文章主要為大家詳細介紹了C#無損轉(zhuǎn)換Image為Icon的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C#中HashTable的定義與使用方法

    C#中HashTable的定義與使用方法

    Hashtable是System.Collections命名空間提供的一個容器,用于處理和表現(xiàn)類似keyvalue的鍵值對,所以Hashtable可以支持任何類型的keyvalue鍵值對
    2012-12-12

最新評論