如何在 C# 中編輯Excel試算表工作簿元數據
使用 IronXL 的 Metadata 屬性在編輯Excel C#中編輯 Excel 元數據,以程式設計方式設定 keywords 和其他文件屬性,而無需 Microsoft Interop,從而實現搜尋電子表格的自動組織。
Excel 電子表格的元資料包括有關 modification date 以及其他相關詳細資料的資訊。 元資料提供上下文信息,有助於組織和分類電子表格。 它簡化了文件搜尋和管理,尤其是在處理多個電子表格文件時。 無論您是建立新的電子表格還是載入現有的工作簿, IronXL都能讓元資料管理變得輕鬆便捷。
快速入門:一步輕鬆編輯工作簿元資料
使用 IronXL 的元資料介面設定、修改和儲存屬性,例如 Author 或 Keywords。 無需互通——只需幾行簡潔直觀的 C# 程式碼即可立即上手。
-
使用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 |
上次列印操作的日期/時間 | 設定、修改、檢索 | 列印歷史記錄追蹤、審計跟踪 |
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() 方法以更新的元資料建立新檔案。該函式庫會自動持久化所有元資料變更以及任何試算表資料修改。

