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

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

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

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

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

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

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

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

使用 Microsoft Office Interop Excel 組件導(dǎo)出 Excel 文件的步驟如下:

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

下面是一個(gè)示例代碼,演示如何使用 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)建一個(gè) DataTable 對(duì)象來存儲(chǔ)數(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)用程序和工作簿對(duì)象,并釋放資源
            workbook.Close();
            excelApp.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
        }
    }
}

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

2.使用 NPOI 組件導(dǎo)出 Excel 文件

使用 NPOI 組件導(dǎo)出 Excel 文件的步驟如下:

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

下面是一個(gè)示例代碼,演示如何使用 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)建一個(gè) DataTable 對(duì)象來存儲(chǔ)數(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();
? ? ? ? }
? ? }
}

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

3.使用 EPPlus 組件導(dǎo)出Excel文件

使用 EPPlus 組件導(dǎo)出 Excel 文件的步驟如下:

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

下面是一個(gè)示例代碼,演示如何使用 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)建一個(gè) DataTable 對(duì)象來存儲(chǔ)數(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);
? ? ? ? ? ? }
? ? ? ? ? ? // 釋放資源
? ? ? ? }
? ? }
}

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

4. 使用 ClosedXML 組件導(dǎo)出 Excel 文件

使用 ClosedXML 組件導(dǎo)出 Excel 文件的步驟如下:

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

下面是一個(gè)示例代碼,演示如何使用 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)建一個(gè) DataTable 對(duì)象來存儲(chǔ)數(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);
? ? ? ? ? ? }
? ? ? ? ? ? // 釋放資源
? ? ? ? }
? ? }
}

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

總結(jié)

到此這篇關(guān)于C#導(dǎo)出Excel的幾種常見方式及詳細(xì)實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)C#導(dǎo)出Excel常用方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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圖形。文中將分兩個(gè)操作示例來演示創(chuàng)建和編輯結(jié)果,需要的朋友可以參考下
    2020-10-10
  • C#中4種深拷貝方法介紹

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

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

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

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

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

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

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

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

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

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

    使用C#自制一個(gè)Windows安裝包的詳細(xì)過程

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

    基于C#檢測敏感詞功能

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

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

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

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

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

最新評(píng)論