C#でExcelワークブックのメタデータを編集する方法
IronXLのMetadataプロパティを使用してC#でExcelのメタデータを編集し、Microsoft Interopを使用せずにauthor、title、keywords、およびその他のドキュメントプロパティをプログラムで設定することで、スプレッドシートの自動整理と検索機能を実現します。
Excel スプレッドシートのメタデータには、title、author、subject、keywords、creation date、modification date、およびその他の関連する詳細情報が含まれます。 メタデータはコンテキストを提供し、スプレッドシートの整理と分類に役立ちます。 特に複数のスプレッドシートファイルを扱うときに、ファイルの検索と管理を簡素化します。 新しいスプレッドシートを作成する場合でも、既存のワークブックをロードする場合でも、IronXLはメタデータの管理をシームレスにします。
IronXLのメタデータインターフェースを使用して、Title、Author、Keywordsなどのプロパティを設定、変更、保存します。 Interopは不要で、クリーンで直感的なC#コードの数行だけですぐに開始できます。
-
1Install IronXL with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
WorkBook workBook = WorkBook.Load("input.xlsx"); workBook.Metadata.Title = "Financial Summary"; // Then save your update to a new file workBook.SaveAs("output.xlsx");C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronXL を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- ワークブックのメタデータを編集するには、C# ライブラリをダウンロードしてください。
- 既存のスプレッドシートを読み込むか、新しいものを作成してください
Metadataプロパティを使用してメタデータ情報にアクセスし、変更します- スプレッドシートデータを表示して変更します
- 編集されたメタデータプロパティを使用してスプレッドシートをエクスポートします
ワークブックのメタデータ プロパティを編集するには?
スプレッドシートファイルの作成者名を編集するには、Author プロパティに希望する文字列を設定してください。 例:workBook.Metadata.Author = "Your Name"。 WorkBook クラスの Metadata プロパティで利用可能なメタデータ情報にアクセスし、取得することができます。 このアプローチは、XLSX、XLS、CSV形式を含む、さまざまなスプレッドシートファイル形式とシームレスに連携します。
どのプロパティをプログラムで変更できますか?
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
Dim 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);
}
}
}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で編集した後、エクセルのドキュメント・プロパティ・パネルにメタデータがどのように表示されるかを示しています:

新しい値を設定する前に既存のメタデータをクリアする必要がある場合は、リセットしたいプロパティに空の文字列またはNULL値を代入するだけです。 これは、社外に配布する文書を作成する際に、社内情報を削除したい場合に特に役立ちます。
IronXLではどのようなメタデータフィールドが利用できますか?
すべてのメタデータ・プロパティが編集できるわけではありません。 一部のプロパティは取得のみ可能です。 どのプロパティがさまざまな操作をサポートしているかを理解することは、効果的なメタデータ管理にとって非常に重要です。 パスワードで保護されたワークブックで作業する場合、ワークブックの暗号化に成功した後も、メタデータにアクセスして変更することができます。
どのプロパティが読み取りと書き込み操作をサポートしますか?
| プロパティ | 説明 | 操作 | 一般的な使用例 |
|---|---|---|---|
Author | 文書作成者名 | 設定、変更、取得 | ドキュメントの所有権の追跡、コンプライアンス |
Comments | ドキュメントに関するその他の注意事項 | 設定、変更、取得 | バージョンノート、処理指示 |
LastPrinted | 最終印刷操作日時 | 設定、変更、取得 | 印刷履歴の追跡、監査証跡 |
Keywords | 検索可能なキーワード | 設定、変更、取得 | ドキュメントの分類、検索の最適化 |
Category | 文書のカテゴリ分類 | 設定、変更、取得 | ファイル整理、部門仕分け |
Created | 文書作成日 | 設定、変更、取得 | 文書の年齢追跡、アーカイブの決定 |
Modified | 最終更新日 | 設定、変更、取得 | 変更追跡、バージョン管理 |
Subject | ドキュメントの主題説明 | 設定、変更、取得 | コンテンツの要約、迅速な識別 |
Title | 文書タイトル | 設定、変更、取得 | ドキュメントの識別、レポート |
どのプロパティが読み取り専用ですか?
| プロパティ | 説明 | 典型的な値 |
|---|---|---|
ApplicationName | ファイルを作成したアプリケーション名 | "Microsoft Excel"、"IronXL" |
CustomProperties | ユーザー定義のカスタムプロパティ | ドキュメントによって異なります |
Company | ドキュメントに関連する会社名 | システムからの組織名 |
Manager | ドキュメントのプロパティからマネージャ名 | 元のファイルから取得 |
Template | ドキュメント作成に使用したテンプレート | テンプレートファイル名または "通常" |
高度なメタデータ操作と完全なAPIドキュメントについては、IronXL API Referenceを参照してください。 メタデータの処理で問題が発生した場合は、トラブルシューティングガイドを参照するか、本番デプロイ用のライセンスオプションを調べてください。
よくある質問
C#でExcelのメタデータをプログラムで編集するには?
IronXLはWorkBookクラスにエクセルのメタデータをプログラムで編集できるシンプルなMetadataプロパティを提供しています。Microsoft Interopを必要とせずに、タイトル、著者、件名、キーワードなどのプロパティを簡単に設定できます。ワークブックをロードし、workBook.Metadataにアクセスしてメタデータ・プロパティを変更するだけです。
Excelファイルでは、どのようなメタデータプロパティを変更できますか?
IronXLでは、著者、タイトル、件名、キーワード、カテゴリー、コメント、ステータス、マネージャー、会社を含む様々なメタデータ・プロパティを変更することができます。また、作成日や変更日への読み取り専用アクセスも可能で、スプレッドシートの包括的なメタデータ管理ができます。
Excelのメタデータを編集するには、Microsoft Officeがインストールされている必要がありますか。
IronXLはMicrosoft OfficeやInteropをインストールする必要はありません。IronXLはスタンドアロンのC#ライブラリであり、Excelファイルとそのメタデータを独立して読み書き、変更することができますので、サーバー環境やOfficeがインストールされていないシステムに最適です。
複数のExcelファイルのメタデータをバッチ処理できますか?
はい、IronXLはExcelファイルのバッチ処理をサポートしています。ディレクトリ内の複数のスプレッドシートを繰り返し処理し、WorkBook.Load()を使ってそれぞれのスプレッドシートをロードし、メタデータ・プロパティを変更して保存し直すことができます。これは特にスプレッドシートファイルの大きなコレクションを整理するのに便利です。
メタデータの編集をサポートするExcelファイル形式は?
IronXLのメタデータ編集機能は、XLSX、XLS、CSVファイルを含む様々なスプレッドシートファイル形式とシームレスに連携します。このライブラリはフォーマット固有の詳細を内部的に処理するため、ファイル・タイプに関係なく同じメタデータ・プロパティ・インターフェイスを使用できます。
編集後にメタデータの変更を保存する方法を教えてください。
IronXLを使用してメタデータのプロパティを変更した後、既存のファイルを更新するにはSave()メソッドを、更新されたメタデータを含む新しいファイルを作成するにはSaveAs()を呼び出すだけです。ライブラリはすべてのメタデータの変更をスプレッドシート・データの変更とともに自動的に永続化します。
How does IronXL handle metadata for password-protected workbooks?
IronXL can access and modify metadata for password-protected workbooks once they are successfully decrypted, allowing secure handling while maintaining data privacy.
What happens if I want to clear existing metadata before saving?
To clear existing metadata before saving, you can assign empty strings or null values to the metadata properties you want to reset, which is useful for preparing documents for external distribution.
Can metadata be updated based on the dynamic content of a file?
Yes, IronXL allows you to set dynamic metadata based on file content or existing file properties, making it adaptable for batch processing or specific content conditions.
Are there any properties in IronXL that are read-only?
Yes, certain properties like `ApplicationName`, `CustomProperties`, `Company`, `Manager`, and `Template` are read-only and cannot be modified through IronXL.

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。