跳過到頁腳內容
使用 IRONXL

如何在 ASP .NET Core 中開啟 Excel 文件

本教學將示範如何在ASP.NET Core應用程式中使用IronXLIronXL開啟 Excel 檔案。 它將涵蓋讀取 Excel 文件的基本步驟,然後顯示其中的數據,並將修改後的數據保存回文件。

IronXL是什麼?

IronXL是一個.NET Excel 函式庫,它提供處理 Excel 文件的功能,而無需 Microsoft Excel 或 Office Interop 依賴項。 它同時支援.NET Framework和.NET Core,只需幾行程式碼即可編寫、操作和讀取 Excel 檔案。 有關讀取 Excel 檔案的詳細教學課程,請參閱此Excel 教學

IronXL庫可以讀取和寫入 Excel 文檔,從中提取數據,處理數據,甚至可以從頭開始建立新的 Excel 文件。 IronXL不僅支援 .XLS 格式,還相容於 .XLSX 格式,這是一種由微軟開發的基於 XML 的檔案格式,用於表示電子表格。

先決條件

在深入研究程式碼之前,請確保您已具備以下條件:

  1. 已安裝.NET Core 3.1 或更高版本。
  2. 適合.NET開發的 IDE(建議使用 Microsoft Visual Studio)。
  3. 對ASP.NET Core和Razor Pages 有基本的了解。

建立一個新的.NET Core項目

  1. 開啟 Microsoft Visual Studio 並選擇"建立新專案"。
  2. 從專案範本清單中選擇"ASP.NET Core Web App",然後按一下"下一步"。
  3. 為您的專案提供一個名稱,例如"Open_ExcelFile.NET_Core",選擇一個位置,然後按一下"下一步"。
  4. 選擇".NET Core"作為目標框架,選擇"ASP.NET Core 3.1 或更高版本"作為版本。 在"專案範本"部分,選擇"網頁應用程式",然後按一下"建立"。

安裝IronXL軟體包

下一步是將IronXL軟體包安裝到這個新建的項目:

  1. 在解決方案資源管理器中以滑鼠右鍵按一下項目,然後選擇"管理NuGet套件"。
  2. 在"瀏覽"標籤中,搜尋"IronXL",然後按一下"安裝" IronXl.Excel程式包。

    如何在.NET Core中開啟 Excel 文件,圖 1:在NuGet套件管理器 UI 中搜尋並安裝IronXL套件 在NuGet套件管理器 UI 中搜尋並安裝IronXL套件。

  3. 等待軟體包安裝完成。

您的ASP.NET Core專案現已設定完畢, IronXL庫也已安裝並可使用。

建立Razor頁面

現在,讓我們建立一個Razor頁面來編寫開啟 Excel 檔案的程式碼。

  1. 在解決方案資源管理器中以滑鼠右鍵按一下"Pages"資料夾,然後選擇"新增">"Razor Page"。
  2. 輸入"ExcelOpener"作為頁面名稱,然後按一下"新增"。

    如何在.NET Core中開啟 Excel 文件,圖 2:建立新的Razor頁面 建立一個新的Razor頁面

這將建立兩個檔案: ExcelOpener.cshtmlExcelOpener.cshtml.cs

ExcelOpener.cshtml檔案包含頁面的 HTML 標記, ExcelOpener.cshtml.cs檔案包含頁面的 C# 程式碼隱藏。

讀取 Excel 文件

讓我們深入研究程式碼。 提供的 ExcelOpenerModel 類別是Razor頁模型。 這個類別有一個屬性 List<List<string>>,它將用於儲存從 Excel 檔案讀取的資料。

public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
$vbLabelText   $csharpLabel

OnGet 方法中, IronXL用於載入 Excel 檔案並從預設工作表(工作簿中的第一個工作表)讀取資料。 每一行都表示為 List<string>,所有這些清單隨後都添加到 Data 屬性中。

public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
$vbLabelText   $csharpLabel

關鍵方法詳解

  • WorkBook.Load(filepath):此方法從指定的檔案路徑載入 Excel 文件。 載入和讀取Excel表格會有幫助。
  • workbook.DefaultWorkSheet:此屬性取得 Excel 電子表格中的預設(第一個)Excel 工作表。
  • sheet.GetCellAt(i, j).Value.ToString():取得指定行和列索引處的儲存格,並將其值轉換為字串。 這是一個索引方法的範例,它可以根據行索引和列索引存取 Excel 文件中的特定儲存格或區域。

簡要說明

ExcelOpener.cshtml.cs檔案中,名為 ExcelOpenerModel 的類別代表Razor Page 模型。 它包含一個名為 Data 的屬性,類型為 List<List<string>>,該屬性將保存 Excel 檔案中的資料。

OnGet 方法在頁面被要求時調用,負責從 Excel 檔案讀取資料。它使用IronXL載​​入 Excel 文件,選擇預設工作表,並遍歷行和列以填充 Data 屬性。

編寫 Excel 文件

OnPost 類別中的 ExcelOpenerModel 方法用於保存對 Excel 檔案的修改。它首先會載入 Excel 文件並檢索預設工作表。 然後,它將 Data 中的值寫入工作表中的儲存格,並將工作簿儲存到新檔案中。

public void OnPost()
{
    try
    {
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data[i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data[i][j]);
            }
        }

        // Save the Excel file
        var filename = @"C:\ModifiedData.xlsx";
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnPost()
{
    try
    {
        // Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        // Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data[i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data[i][j]);
            }
        }

        // Save the Excel file
        var filename = @"C:\ModifiedData.xlsx";
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        // Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
$vbLabelText   $csharpLabel

主要方法詳解

  • sheet.SetCellValue(i, j, Data[i][j]):此方法設定指定行和列索引處的儲存格的值。
  • workbook.SaveAs(filepath):此方法將 Excel 工作簿儲存到指定的檔案路徑。

簡要說明

當表單提交時,會呼叫 OnPost 方法,該方法會將修改後的資料儲存回 Excel 檔案。它會載入 Excel 文件,選擇預設工作表,並根據從表單接收的修改後的資料更新儲存格值。

用於編輯 Excel 資料的 HTML 表單

ExcelOpener.cshtml 檔案中,定義了一個用於顯示和編輯 Excel 檔案中資料的表單。每個單元格的值都會顯示在文字輸入欄位中。 編輯完成後,點擊"儲存"按鈕將提交表單,觸發 OnPost 方法並將變更儲存到 Excel 檔案。

@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">

        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> 
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> 
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">

        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> 
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> 
</form>
HTML

導航至頁面

_Layout.cshtml中,向導覽功能表新增了指向該頁面的連結。 點擊此鏈接,即可進入 Excel 開啟頁面。

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
HTML

運行應用程式並解釋輸出結果

在 Visual Studio 中按一下"產生"按鈕或使用捷徑 Ctrl + Shift + B 產生應用程式。 按 F5 鍵或在 Visual Studio 中按一下"開始"按鈕執行應用程式。

應用程式運行後,點擊導航欄中的相應鏈接,導航至"ExcelOpener"頁面。 頁面將以表格形式顯示來自 Excel 的資料。

您可以修改表格中的數據,然後按一下"儲存"按鈕將變更儲存回 Excel 檔案。

如何在.NET Core中開啟 Excel 文件,圖 3:在 Web 應用程式中顯示 Excel 資料 在 Web 應用程式中顯示 Excel 數據

本教學課程示範如何在ASP.NET Core應用程式中使用IronXL開啟 Excel 檔案。 IronXL提供了一種簡單便捷的方式來讀取和操作 Excel 檔案。 您可以查閱IronXL文件以了解更多進階特性和功能。

IronXL提供免費試用,方便您評估其功能。 如果您發現它對您的專案有用,您可以從 $799 開始購買許可證。

常見問題解答

如何在 ASP.NET Core 應用程序中開啟 Excel 檔案?

您可以使用 IronXL 庫在 ASP.NET Core 應用程式中開啟 Excel 檔案。首先,透過 NuGet 安裝 IronXL 套件,然後使用 WorkBook.Load 來載入您的 Excel 檔案。您可以通過選擇工作表並遍歷行和列來存取數據。

使用 IronXL 相較於 Office Interop 操作 Excel 有什麼好處?

IronXL 允許您處理 Excel 檔案而不需要 Microsoft Excel 或 Office Interop 依賴項,使其非常適合在無法安裝 Microsoft Office 的伺服器環境中使用。它支持 .NET Framework 和 .NET Core 並且可以處理 .XLS 和 .XLSX 格式。

如何在使用 Razor Pages 的 Web 應用程式中顯示 Excel 資料?

要在 Web 應用程式中顯示 Excel 資料,您可以創建一個使用 IronXL 來載入和讀取 Excel 資料的 Razor Page。使用 HTML 表單來將每個儲存格的資料呈現為文本輸入字段,允許用戶在網頁界面中查看和編輯資料。

設置 ASP.NET Core 專案來執行 Excel 操作需要什麼?

要設置 ASP.NET Core 專案以進行 Excel 操作,您需要擁有 .NET Core 3.1 或更高版本、Microsoft Visual Studio 等 IDE,以及對 ASP.NET Core 和 Razor Pages 的基本認識。從 NuGet 安裝 IronXL 套件以開始處理 Excel 檔案。

如何在 ASP.NET Core 中編輯和保存對 Excel 文件的更改?

您可以允許用戶通過 Razor Page 中的 HTML 表單修改資料來編輯和保存 Excel 文件的更改。使用 IronXL 方法如 sheet.SetCellValue 來更新資料,並使用 workbook.SaveAs 來保存修改過的 Excel 文件。

設置 Razor Page 來處理 Excel 文件操作的步驟有哪些?

設置 Razor Page 涉及在您的 ASP.NET Core 專案中創建新的 Razor Page。使用 Razor Page 來載入 IronXL 的 Excel 資料,在 Web 表單中顯示資料,並處理表單提交以更新並保存修改回 Excel 文件中。

如果我的 Excel 文件在 ASP.NET Core 中無法載入,我應該如何排除故障?

如果您的 Excel 文件無法載入,請確保文件路徑正確且應用程序可以訪問。確保 IronXL 已正確安裝,且文件格式受支持。檢查可能指出問題的任何異常或錯誤消息。

我可以在購買之前試用 IronXL 庫嗎?

是的,IronXL 提供一個免費試用版本,讓您評估其功能。您可以使用此試用版以確保它滿足您的需求,然後再決定購買許可證。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我