如何在 C# 中編輯 Excel 工作簿的元資料
使用 IronXL 的 Metadata 屬性以 C# 編輯 Excel 元資料,藉此在無需 Microsoft Interop 的情況下,程式化地設定 keywords 及其他文件屬性,無需 Microsoft Interop 即可實現電子表格的自動化組織與搜尋功能。
Excel 試算表的元資料包含關於 modification date 及其他相關細節。 元資料可提供背景資訊,並有助於整理和分類試算表。 它簡化了檔案搜尋與管理流程,特別是在處理多個試算表檔案時。 無論您是建立新的試算表,還是載入現有的工作簿,IronXL 都能讓元資料管理變得無縫銜接。
快速入門:一步輕鬆編輯工作簿元資料
使用 IronXL 的 Metadata 介面設定、修改及儲存 Author 或 Keywords 等屬性。 無需 Interop —— 只需幾行簡潔直觀的 C# 程式碼,即可立即開始使用。
-
using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronXL.Excel
PM > Install-Package IronXL.Excel -
請複製並執行此程式碼片段。
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"); -
部署至您的生產環境進行測試
立即透過免費試用,在您的專案中開始使用 IronXL
簡化工作流程(5 個步驟)
- 下載 C# 函式庫以編輯工作簿元資料
- 載入現有試算表或建立全新的試算表
- Access and modify the metadata information using the `Metadata` property
- 檢視與修改試算表資料
- 匯出包含已編輯元資料屬性的試算表
如何編輯工作簿的元資料屬性?
若要編輯試算表檔案的作者名稱,請將 Author 屬性設定為所需的文字串。 例如,workBook.Metadata.Author = "Your Name"。 可存取並擷取 WorkBook 類別中 Metadata 屬性所提供的元資料資訊。 此方法可無縫支援各種試算表檔案類型,包括 XLS 及 CSV 格式。
哪些屬性可以透過程式碼進行修改?
: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");
Imports IronXL
Imports System
Private workBook As 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
Dim creationDate? As DateTime = workBook.Metadata.Created
' Read the last printed date of the excel file
Dim printDate? As DateTime = workBook.Metadata.LastPrinted
workBook.SaveAs("editedMetadata.xlsx")
對於更複雜的場景,您可以將元資料編輯與其他 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);
}
}
}
Imports IronXL
Imports System
Imports System.IO
Public Class BatchMetadataProcessor
Public Shared Sub ProcessFinancialReports(folderPath As String)
' Get all Excel files in the directory
Dim excelFiles As String() = Directory.GetFiles(folderPath, "*.xlsx")
For Each filePath As String In excelFiles
' Load the workbook
Dim workBook As WorkBook = WorkBook.Load(filePath)
' Update metadata based on file content
Dim fileName As String = 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") Then
workBook.Metadata.Title = "Q1 Financial Report"
workBook.Metadata.Keywords = "Q1, Finance, Quarterly"
ElseIf fileName.Contains("Q2") Then
workBook.Metadata.Title = "Q2 Financial Report"
workBook.Metadata.Keywords = "Q2, Finance, Quarterly"
End If
' Add timestamp to comments
workBook.Metadata.Comments = $"Processed on {DateTime.Now:yyyy-MM-dd HH:mm}"
' Set the subject based on worksheet content
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
workBook.Metadata.Subject = $"Report containing {sheet.RowCount} data rows"
' Save with updated metadata
Dim outputPath As String = Path.Combine(folderPath, "processed", fileName & "_updated.xlsx")
workBook.SaveAs(outputPath)
Next
End Sub
End Class
儲存時,現有的元資料會如何處理?
當您使用 IronXL 儲存或匯出 Excel 檔案時,任何未經您明確修改的元資料屬性,皆會保留其原始值。 僅您所變更的屬性會在儲存的檔案中更新。這種選擇性更新方式可確保在處理過程中,不會意外遺失現有的重要元資料。 下圖展示使用 IronXL 編輯後,元資料在 Excel 文件屬性面板中的顯示方式:
若需在設定新值前清除現有元資料,只需將欲重設的屬性賦予空字串或 null 值即可。 這在準備供外部分發的文件時特別有用,此時您希望移除內部公司資訊。
IronXL 提供哪些元資料欄位?
並非所有元資料屬性皆可編輯。 某些屬性僅能被讀取。 了解哪些屬性支援不同的操作,對於有效的元資料管理至關重要。 在處理受密碼保護的工作簿時,只要成功解密工作簿,仍可存取並修改其元資料。
哪些屬性支援讀取與寫入操作?
| 屬性 | 描述 | 操作 | 常見應用情境 |
|---|---|---|---|
Author |
文件建立者姓名 | 設定、修改、擷取 | 追蹤文件所有權與合規性 |
Comments |
關於本文件的補充說明 | 設定、修改、擷取 | 版本說明、處理指示 |
LastPrinted |
上次PRINT操作的日期/時間 | 設定、修改、擷取 | PRINT歷史記錄追蹤、稽核追蹤 |
Keywords |
可搜尋關鍵字 | 設定、修改、擷取 | 文件分類、搜尋優化 |
Category |
文件類別分類 | 設定、修改、擷取 | 檔案組織、部門分類 |
Created |
文件建立日期 | 設定、修改、擷取 | 文件存檔追蹤、歸檔決策 |
ModifiedDate |
最後修改日期 | 設定、修改、擷取 | 變更追蹤、版本控制 |
Subject |
文件主題說明 | 設定、修改、擷取 | 內容摘要、快速識別 |
Title |
文件標題 | 設定、修改、擷取 | 文件識別、報告 |
哪些屬性是唯讀的?
| 屬性 | 描述 | 典型值 |
|---|---|---|
ApplicationName |
建立此檔案的應用程式名稱 | "Microsoft Excel"、"IronXL" |
CustomProperties |
使用者自訂屬性 | 視文件而定 |
Company |
與本文件相關的公司名稱 | 系統中的組織名稱 |
Manager |
來自文件屬性的經理名稱 | 摘自原始檔案 |
Template |
用於建立此文件的範本 | 範本檔名或"Normal" |
有關進階元資料操作及完整的 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 檔案。IronXL程式庫會在內部處理格式相關的細節,讓您無論使用何種檔案類型,都能透過相同的 Metadata 屬性介面進行操作。
編輯後該如何儲存元資料的變更?
using IronXL 修改元資料屬性後,只需呼叫 Save() 方法即可更新現有檔案,或呼叫 SaveAs() 方法以更新後的元資料建立新檔案。IronXL程式庫會自動將所有元資料變更與任何試算表資料修改一併儲存。

