.NET でコア ワークブック設定を操作する方法

.NET でコア ワークブック設定を操作する方法

Aspose.Cells FOSS for .NET は、Workbook.Settings(ロケールと日付システム)、Workbook.DocumentProperties(作者メタデータ)、Workbook.LoadDiagnostics(修復レポート)、およびSaveOptions(保存動作)を通じてブックレベルの構成を公開します。dotnet add package Aspose.Cells_FOSSでインストールします。

ステップバイステップ ガイド

ステップ 1: パッケージをインストール

dotnet add package Aspose.Cells_FOSS

Step 2: 名前空間のインポート

using Aspose.Cells_FOSS;
using System.Globalization;

ステップ 3: WorkbookSettings の構成

Workbook.SettingsWorkbookSettings オブジェクトを返します。macOS 由来のファイルで 1904 日付システムを使用する場合は Date1904 = true を設定します。数値と日付の解析ロケールを制御するには Culture を設定します。

using Aspose.Cells_FOSS;
using System.Globalization;

var wb = new Workbook();
wb.Settings.Date1904 = false;
wb.Settings.Culture = new CultureInfo("en-US");
wb.Worksheets[0].Cells["A1"].PutValue("Settings configured");
wb.Save("settings.xlsx");

var loaded = new Workbook("settings.xlsx");
Console.WriteLine("Date1904: " + loaded.Settings.Date1904);

ステップ 4: ドキュメント プロパティを設定

Workbook.DocumentPropertiesTitleSubjectAuthorKeywordsCommentsCategoryCompany、および Manager を直接文字列プロパティとして公開します。

using Aspose.Cells_FOSS;

var wb = new Workbook();
wb.DocumentProperties.Title = "Quarterly Report";
wb.DocumentProperties.Author = "Reporting Team";
wb.DocumentProperties.Company = "Contoso Ltd";
wb.DocumentProperties.Keywords = "quarterly, sales, 2026";
wb.Save("properties.xlsx");

var loaded = new Workbook("properties.xlsx");
Console.WriteLine("Title: " + loaded.DocumentProperties.Title);
Console.WriteLine("Author: " + loaded.DocumentProperties.Author);

ステップ5: SaveOptions を使用する

Workbook.Save(path, SaveOptions) は出力をカスタマイズするために SaveOptions オブジェクトを受け取ります。主なプロパティ: UseSharedStrings(繰り返し文字列を含むシートのファイルサイズを削減)、ValidateBeforeSave(書き込み前に検証を実行)、および CompactStyles(未使用のスタイルを削除)。

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 50; i++)
    ws.Cells[i, 0].PutValue("Repeated text");

var opts = new SaveOptions
{
    UseSharedStrings = true,
    ValidateBeforeSave = true,
    CompactStyles = true,
};

wb.Save("compact.xlsx", opts);
Console.WriteLine("Saved with SaveOptions.");

ステップ 6: 修理後に LoadDiagnostics を読み取る

TryRepairPackage = trueでロードした後、Workbook.LoadDiagnosticsを確認して、修復が適用されたかどうかを確認してください。

using Aspose.Cells_FOSS;

var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;

Console.WriteLine("HasRepairs: " + diag.HasRepairs);
Console.WriteLine("HasDataLossRisk: " + diag.HasDataLossRisk);
foreach (var entry in diag.Issues)
    Console.WriteLine($"  [{entry.Severity}] {entry.Code}: {entry.Message}");

一般的な問題と修正

WorkbookSaveException の場合 ValidateBeforeSave = true. このワークブックには構造的不整合があります。ValidateBeforeSave を一時的に無効にして保存し、ファイルを検査し、問題のあるコンテンツを修正してください。

Excel のファイル情報パネルにドキュメント プロパティが表示されません。
Workbook.DocumentProperties にプロパティを設定していることを確認してください。Workbook.Properties ではありません。後者は表示フラグを保持しており、メタデータ文字列ではありません。

Date1904 = true が日付値のシフトを引き起こします。
Date1904 は日付シリアル番号に使用されるエポックを変更します。1904 日付システムが有効な macOS Excel から生成されたファイルに対してのみ true を設定してください。システムを混在させると 1462 日の誤差が生じます。

よくある質問

WorkbookSettingsWorkbookProperties の違いは何ですか?

WorkbookSettingsWorkbook.Settings経由)には、Date1904Cultureといった構成値が格納されています。WorkbookPropertiesWorkbook.Properties経由)には、ShowObjectsなどのOOXML表示フラグが格納されています。ドキュメントのメタデータ文字列(タイトル、作者など)はWorkbook.DocumentPropertiesにあります。

CompactStylesは、必要なスタイルを削除したことがありますか?

いいえ。CompactStyles は、ワークブック内のセルや書式ルールで参照されていないスタイルのみを削除します。

修復が試みられなかった場合でも、LoadDiagnosticsを読むことはできますか?

はい。Issues コレクションは空になり、HasRepairsHasDataLossRisk の両方は false を返します。

参照

 日本語