如何在C#中編輯工作簿元數據

如何在 C# 中編輯 Excel 工作簿元數據

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用 IronXL 的 Metadata 屬性在 C# 中編輯 Excel 元數據,以程式設計方式設定 keywords 和其他文件屬性,而無需 Microsoft Interop,從而實現搜尋電子表格的自動組織和實現搜尋電子表格的自動組織和實現搜尋電子表格。

Excel 電子表格的元資料包括有關 modification date 以及其他相關詳細資料的資訊。 元資料提供上下文信息,有助於組織和分類電子表格。 它簡化了文件搜尋和管理,尤其是在處理多個電子表格文件時。 無論您是建立新的電子表格還是載入現有的工作簿, IronXL都能讓元資料管理變得輕鬆便捷。

快速入門:一步輕鬆編輯工作簿元資料

使用 IronXL 的元資料介面設定、修改和儲存屬性,例如 AuthorKeywords。 無需互通——只需幾行簡潔直觀的 C# 程式碼即可立即上手。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronXL.Excel

    PM > Install-Package IronXL.Excel
  2. 複製並運行這段程式碼。

    IronXl.WorkBook.Load("input.xlsx").Metadata.Title = "Financial Summary";
    // Then save your update to a new file
    IronXl.WorkBook.Load("input.xlsx").SaveAs("output.xlsx");
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronXL

    arrow pointer

如何編輯工作簿元資料屬性?

若要編輯電子表格檔案的作者姓名,請將 Author 屬性設定為所需的資料字串。 例如,workBook.Metadata.Author = "Your Name"。 可存取和檢索 WorkBook 類別的 Metadata 屬性中提供的元資料資訊。 這種方法可以無縫地與各種電子表格文件類型配合使用,包括 XLSCSV 格式。

我可以透過程式修改哪些屬性?

:path=/static-assets/excel/content-code-examples/how-to/edit-workbook-metadata.cs
using IronXL;
using System;

WorkBook workBook = WorkBook.Load("sample.xlsx");

// Set author
workBook.Metadata.Author = "Your Name";
// Set comments
workBook.Metadata.Comments = "Monthly report";
// Set title
workBook.Metadata.Title = "July";
// Set keywords
workBook.Metadata.Keywords = "Report";

// Read the creation date of the excel file
DateTime? creationDate = workBook.Metadata.Created;

// Read the last printed date of the excel file
DateTime? printDate = workBook.Metadata.LastPrinted;

workBook.SaveAs("editedMetadata.xlsx");
$vbLabelText   $csharpLabel

對於更複雜的場景,您可以將元資料編輯與其他 Excel 操作結合。 以下是一個全面的範例,示範如何批次處理多個 Excel 檔案:

using IronXL;
using System;
using System.IO;

public class BatchMetadataProcessor
{
    public static void ProcessFinancialReports(string folderPath)
    {
        // Get all Excel files in the directory
        string[] excelFiles = Directory.GetFiles(folderPath, "*.xlsx");

        foreach (string filePath in excelFiles)
        {
            // Load the workbook
            WorkBook workBook = WorkBook.Load(filePath);

            // Update metadata based on file content
            string fileName = Path.GetFileNameWithoutExtension(filePath);

            // Set consistent metadata across all reports
            workBook.Metadata.Author = "Finance Department";
            workBook.Metadata.Company = "Your Company Name";
            workBook.Metadata.Category = "Financial Reports";

            // Set dynamic metadata based on filename
            if (fileName.Contains("Q1"))
            {
                workBook.Metadata.Title = "Q1 Financial Report";
                workBook.Metadata.Keywords = "Q1, Finance, Quarterly";
            }
            else if (fileName.Contains("Q2"))
            {
                workBook.Metadata.Title = "Q2 Financial Report";
                workBook.Metadata.Keywords = "Q2, Finance, Quarterly";
            }

            // Add timestamp to comments
            workBook.Metadata.Comments = $"Processed on {DateTime.Now:yyyy-MM-dd HH:mm}";

            // Set the subject based on worksheet content
            WorkSheet sheet = workBook.DefaultWorkSheet;
            workBook.Metadata.Subject = $"Report containing {sheet.RowCount} data rows";

            // Save with updated metadata
            string outputPath = Path.Combine(folderPath, "processed", fileName + "_updated.xlsx");
            workBook.SaveAs(outputPath);
        }
    }
}
using IronXL;
using System;
using System.IO;

public class BatchMetadataProcessor
{
    public static void ProcessFinancialReports(string folderPath)
    {
        // Get all Excel files in the directory
        string[] excelFiles = Directory.GetFiles(folderPath, "*.xlsx");

        foreach (string filePath in excelFiles)
        {
            // Load the workbook
            WorkBook workBook = WorkBook.Load(filePath);

            // Update metadata based on file content
            string fileName = Path.GetFileNameWithoutExtension(filePath);

            // Set consistent metadata across all reports
            workBook.Metadata.Author = "Finance Department";
            workBook.Metadata.Company = "Your Company Name";
            workBook.Metadata.Category = "Financial Reports";

            // Set dynamic metadata based on filename
            if (fileName.Contains("Q1"))
            {
                workBook.Metadata.Title = "Q1 Financial Report";
                workBook.Metadata.Keywords = "Q1, Finance, Quarterly";
            }
            else if (fileName.Contains("Q2"))
            {
                workBook.Metadata.Title = "Q2 Financial Report";
                workBook.Metadata.Keywords = "Q2, Finance, Quarterly";
            }

            // Add timestamp to comments
            workBook.Metadata.Comments = $"Processed on {DateTime.Now:yyyy-MM-dd HH:mm}";

            // Set the subject based on worksheet content
            WorkSheet sheet = workBook.DefaultWorkSheet;
            workBook.Metadata.Subject = $"Report containing {sheet.RowCount} data rows";

            // Save with updated metadata
            string outputPath = Path.Combine(folderPath, "processed", fileName + "_updated.xlsx");
            workBook.SaveAs(outputPath);
        }
    }
}
$vbLabelText   $csharpLabel

保存時現有元資料會發生什麼變化?

使用IronXL儲存或匯出 Excel 檔案時,任何未明確修改的元資料屬性都會保留其原始值。 只有您變更過的屬性才會更新到已儲存的檔案中。這種選擇性更新方式可確保在處理過程中不會意外遺失重要的現有元資料。 下圖顯示了使用IronXL編輯後,元資料在 Excel 文件屬性面板中的顯示方式:

使用IronXL修改後,Excel 文件屬性面板顯示了已編輯的元資料字段,包括作者、標題、主題和關鍵字。

如果在設定新值之前需要清除現有元數據,只需將空字串或 null 值指派給要重設的屬性即可。 在準備對外分發的文件時,如果想要刪除公司內部訊息,這個功能尤其有用。


IronXL中有哪些元資料欄位可用?

並非所有元資料屬性都可以編輯。 有些屬性只能取得。 了解哪些屬性支援不同的操作對於有效的元資料管理至關重要。 使用受密碼保護的工作簿時,即使工作簿成功解密,仍可存取和修改元資料。

哪些屬性支援讀寫操作?

財產 描述 營運 常見用例
Author 文件建立者姓名 設定、修改、檢索 追蹤文件所有權和合規性
Comments 關於該文件的補充說明 設定、修改、檢索 版本說明、處理說明
LastPrinted 上次列印操作的日期/時間 設定、修改、檢索 列印歷史記錄追蹤、審計跟踪
Keywords 可搜尋關鍵字 設定、修改、檢索 文件分類、搜尋優化
Category 文件類別分類 設定、修改、檢索 文件整理、部門排序
Created 文件創建日期 設定、修改、檢索 文件年代追蹤、歸檔決定
ModifiedDate 最後修改日期 設定、修改、檢索 變更追蹤、版本控制
Subject 文件主題描述 設定、修改、檢索 內容概括,快速識別
Title 文件標題 設定、修改、檢索 文件識別、報告

哪些屬性是唯讀的?

財產 描述 典型值
ApplicationName 建立該檔案的應用程式名稱 "Microsoft Excel"、"IronXL"
CustomProperties 使用者自訂屬性 因文件而異
Company 與該文件關聯的公司名稱 系統中的組織名稱
Manager 文檔屬性中的經理名稱 從原始文件中檢索
Template 用於建立文件的模板 範本檔案名稱或"普通"

有關高級元資料操作和完整的 API 文檔,請參閱IronXL API 參考。 如果您在元資料處理方面遇到任何問題,請參閱我們的故障排除指南或了解生產部署的授權選項

常見問題解答

如何使用 C# 程式化編輯 Excel 元資料?

IronXL 在 WorkBook 類別上提供了一個簡單的 Metadata 屬性,可讓您以程式化的方式編輯 Excel 元資料。您無需 Microsoft Interop 即可輕鬆設定標題、作者、主題和關鍵字等屬性。只需載入您的工作簿並存取 workBook.Metadata 即可修改任何元資料屬性。

我可以在 Excel 檔案中修改哪些元資料屬性?

透過 IronXL,您可以修改各種元資料屬性,包括作者、標題、主題、關鍵字、類別、評論、狀態、經理和公司。該資料庫還提供對建立和修改日期的唯讀存取,可為您的試算表進行全面的元資料管理。

編輯 Excel 元資料需要安裝 Microsoft Office 嗎?

不,IronXL 不需要安裝 Microsoft Office 或 Interop。它是一個獨立的 C# 函式庫,可以獨立讀取、寫入和修改 Excel 檔案及其元資料,因此非常適合伺服器環境或未安裝 Office 的系統。

我可以批次處理多個 Excel 檔案的元資料嗎?

是的,IronXL 支援 Excel 檔案的批次處理。您可以遍歷一個目錄中的多個試算表,使用 WorkBook.Load() 載入每個試算表,修改其元資料屬性,然後將它們儲存回去。這對於整理大量的試算表檔案特別有用。

哪些 Excel 檔案格式支援元資料編輯?

IronXL 的元資料編輯功能可與各種試算表檔案格式(包括 XLSX、XLS 和 CSV 檔案)無縫配合。程式庫會在內部處理特定格式的細節,讓您不論檔案類型為何,都能使用相同的 Metadata 屬性介面。

編輯後如何儲存 metadata 變更?

使用 IronXL 修改元資料屬性後,只需呼叫 Save() 方法更新現有檔案,或呼叫 SaveAs() 方法以更新的元資料建立新檔案。該函式庫會自動持久化所有元資料變更以及任何試算表資料修改。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 1,913,565 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronXL.Excel
執行範例 觀看您的資料變成試算表。