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

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

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

IronXLのMetadataプロパティを使用してC#でExcelのメタデータを編集し、Microsoft Interopを使用せずにkeywords、およびその他のドキュメントプロパティをプログラムで設定し、Microsoft Interopを使用せずにスプレッドシートの自動整理と検索機能を実現します。

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

クイックスタート:一歩でワークブックメタデータを編集

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

  1. IronXL をNuGetパッケージマネージャでインストール

    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 プロパティで利用可能なメタデータ情報にアクセスし、取得することができます。 このアプローチは、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")
$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);
        }
    }
}
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
$vbLabelText   $csharpLabel

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

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

IronXLで編集した著者、タイトル、件名、キーワードなどのメタデータフィールドを示すExcelドキュメントのプロパティパネル

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


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

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

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

プロパティ 翻訳内容 業務内容 一般的な使用例
Author 文書作成者名 設定、変更、取得 ドキュメントの所有権の追跡、コンプライアンス
Comments ドキュメントに関するその他の注意事項 設定、変更、取得 バージョンノート、処理指示
LastPrinted 最終印刷操作日時 設定、変更、取得 印刷履歴の追跡、監査証跡
Keywords 検索可能なキーワード 設定、変更、取得 ドキュメントの分類、検索の最適化
Category 文書のカテゴリ分類 設定、変更、取得 ファイル整理、部門仕分け
Created 文書作成日 設定、変更、取得 文書の年齢追跡、アーカイブの決定
ModifiedDate 最終更新日 設定、変更、取得 変更追跡、バージョン管理
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()を呼び出すだけです。ライブラリはすべてのメタデータの変更をスプレッドシート・データの変更とともに自動的に永続化します。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 2,052,917 | バージョン: 2026.6 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronXL.Excel
サンプルを実行する あなたのデータがスプレッドシートになるのを見る。