C#でワークブックメタデータを編集する方法

C#でExcelワークブックのメタデータを編集する方法

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

XL.ExcelのMetadataプロパティを使ってC#でエクセルのメタデータを編集し、authortitlekeywordsやその他のドキュメント・プロパティをMicrosoft Interopなしでプログラム的に設定し、スプレッドシートの自動整理と検索を可能にします。

エクセルのスプレッドシートのメタデータには、titleauthorsubjectkeywordscreation datemodification date、およびその他の関連する詳細情報が含まれます。 メタデータはコンテキストを提供し、スプレッドシートの整理と分類に役立ちます。 特に複数のスプレッドシートファイルを扱うときに、ファイルの検索と管理を簡素化します。 新しいスプレッドシートを作成する場合でも、既存のワークブックをロードする場合でも、IronXLはメタデータの管理をシームレスにします。

見出し:2(クイックスタート: ワークブックのメタデータを1ステップで編集する)

IronXLのメタデータ・インターフェースを使用して、TitleAuthorKeywordsのようなプロパティを設定、変更、保存します。 Interopは不要で、クリーンで直感的なC#コードの数行だけですぐに開始できます。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    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プロパティでアクセスおよび取得できます。 このアプローチは、XLSXXLSCSV フォーマットを含むさまざまなスプレッドシートファイルタイプでシームレスに動作します。

どのプロパティをプログラムで変更できますか?

: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")
$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);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

保存すると既存のメタデータはどうなりますか?

IronXLを使用してExcelファイルを保存またはエクスポートすると、明示的に変更しなかったメタデータ・プロパティは元の値を保持します。 変更したプロパティのみが、保存されたファイルで更新されます。この選択的な更新アプローチにより、貴重な既存のメタデータが処理中に誤って失われることはありません。 下の画像は、IronXLで編集した後、エクセルのドキュメント・プロパティ・パネルにメタデータがどのように表示されるかを示しています:

Excelドキュメントのプロパティパネルで、IronXLで修正した後の著者、タイトル、件名、キーワードなどのメタデータフィールドを表示しています。

新しい値を設定する前に既存のメタデータをクリアする必要がある場合は、リセットしたいプロパティに空の文字列またはNULL値を代入するだけです。 これは、社外に配布する文書を作成する際に、社内情報を削除したい場合に特に役立ちます。


IronXLではどのようなメタデータフィールドが利用できますか?

すべてのメタデータ・プロパティが編集できるわけではありません。 一部のプロパティは取得のみ可能です。 どのプロパティがさまざまな操作をサポートしているかを理解することは、効果的なメタデータ管理にとって非常に重要です。 パスワードで保護されたワークブックで作業する場合、ワークブックの暗号化に成功した後も、メタデータにアクセスして変更することができます。

どのプロパティが読み取りと書き込み操作をサポートしますか?

プロパティ翻訳内容業務内容一般的な使用例
<コード>著者</コード文書作成者名設定、変更、取得ドキュメントの所有権の追跡、コンプライアンス
<コード>コメント</コードドキュメントに関するその他の注意事項設定、変更、取得バージョンノート、処理指示
<コード>ラストプリント</コード最終印刷操作日時設定、変更、取得印刷履歴の追跡、監査証跡
<コード>キーワード</コード検索可能なキーワード設定、変更、取得ドキュメントの分類、検索の最適化
<コード>カテゴリ</コード文書のカテゴリ分類設定、変更、取得ファイル整理、部門仕分け
<コード>作成</コード文書作成日設定、変更、取得文書の年齢追跡、アーカイブの決定
<コード>更新日</コード最終更新日設定、変更、取得変更追跡、バージョン管理
<コード>件名</コードドキュメントの主題説明設定、変更、取得コンテンツの要約、迅速な識別
<コード>タイトル</コード文書タイトル設定、変更、取得ドキュメントの識別、レポート

どのプロパティが読み取り専用ですか?

プロパティ翻訳内容典型的な値
<コード>アプリケーション名</コードファイルを作成したアプリケーション名"Microsoft Excel"、"IronXL"
<コード>カスタムプロパティ</コードユーザー定義のカスタムプロパティドキュメントによって異なります
<コード>会社名</コードドキュメントに関連する会社名システムからの組織名
<コード>マネージャー</コードドキュメントのプロパティからマネージャ名元のファイルから取得
<コード>テンプレート</コードドキュメント作成に使用したテンプレートテンプレートファイル名または "通常"

高度なメタデータ操作と完全な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()を呼び出すだけです。ライブラリはすべてのメタデータの変更をスプレッドシート・データの変更とともに自動的に永続化します。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 1,765,830 | バージョン: 2025.12 リリース