フッターコンテンツにスキップ
IRONXLの使用

C# CSV から XLSX: CSV ファイルを Excel 形式に変換する

CSVファイルをXLSX形式に変換することで、カンマ区切り値ファイルでは実現できないスプレッドシート機能を利用できるようになります。CSVは生の表形式データを格納するのに対し、ExcelのXLSX形式は数式、複数のワークシート、グラフ、セル書式設定、データ検証など、現代のビジネスアプリケーションで求められる機能をサポートしています。 適切なライブラリを使えば変換プロセスは簡単で、C#コードを数行書くだけで済みます。

IronXLは、Microsoft OfficeやOpen XML SDKを必要とせずに、この変換を直接処理する.NETライブラリです。 ソースのCSVファイルを読み込み、区切り文字で区切られたデータを解析し、完全に準拠したXLSXワークブックを作成します。 NuGet経由でインストールし、無料トライアルを開始して、以下のコードサンプルに沿って操作してみてください。

C#でCSVファイルをXLSX形式に変換するにはどうすればよいですか?

コアとなる変換処理では、CSVファイルを読み込み、Excel形式で保存する必要があります。 IronXL は、区切り文字付きソースを解析し、エクスポート可能なワークブックを作成する WorkBook.LoadCSV を提供します。 このメソッドは、ファイルパス、対象のExcel形式、および区切り文字を受け取ります。

using IronXL;

// Load CSV file and convert to XLSX format
WorkBook workbook = WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Access the default worksheet containing CSV data
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Save as Excel XLSX file
workbook.SaveAs("output.xlsx");
using IronXL;

// Load CSV file and convert to XLSX format
WorkBook workbook = WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Access the default worksheet containing CSV data
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Save as Excel XLSX file
workbook.SaveAs("output.xlsx");
Imports IronXL

' Load CSV file and convert to XLSX format
Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv", fileFormat:=ExcelFileFormat.XLSX, ListDelimiter:=",")

' Access the default worksheet containing CSV data
Dim worksheet As WorkSheet = workbook.DefaultWorkSheet

' Save as Excel XLSX file
workbook.SaveAs("output.xlsx")
$vbLabelText   $csharpLabel

出力

C# CSV から XLSX への変換: 完全開発者ガイド: 画像 1 - CSV から Excel への変換の出力例

LoadCSV メソッドは、ファイル名、対象の Excel フォーマット定数、およびソース ファイルで使用されているリスト区切り文字という 3 つのキー パラメータを受け取ります。このアプローチでは、元の CSV シートからすべての文字列データと数値が保持され、適切に構造化された XLSX ファイルが作成されます。WorkBookクラスは、すべてのスプレッドシート操作の中心となるハブとして機能します。 読み込まれたCSVデータはワークシートを通してアクセスできるようになり、最終的なExcelファイルを保存する前にさらに操作することが可能になります。

CSVファイルではなく既存のXLSXファイルを読み込むには、ファイル拡張子からフォーマットを自動的に検出するWorkBook.Load("file.xlsx")を使用します。 これにより、CSVまたはExcelの入力を受け入れ、それらを単一の出力形式に正規化するパイプラインを簡単に構築できます。

CSVファイルをExcel形式に変換するメリットは何ですか?

XLSX形式は、ほとんどのデータ管理シナリオにおいて、通常のCSV形式よりも明確な利点を提供します。

-複数のワークシート:Excelファイルは、1つのワークブック内に複数のシートをサポートしており、CSVファイルでは実現できない整理されたデータ保存を可能にします。 1つのXLSXファイルには、異なる期間、地域、またはカテゴリを網羅する数十枚のワークシートを含めることができます。 -数式サポート:複雑な計算、集計、条件付きロジックをセルに直接記述できます。 Excelの数式は、ソースデータが変更されると自動的に再計算されるため、CSVファイルを手動で再処理する必要がなくなります。 -ビジュアルチャート:ワークシートのデータから、棒グラフ、折れ線グラフ、円グラフなどの視覚化を作成します。 IronXLはAPIを介したグラフ作成を直接サポートしているため、グラフはXLSXファイルに埋め込まれます。 -セル書式設定:Professional文書を作成するために、フォント、色、罫線、数値形式を制御できます。 CSVファイルには生の値のみが格納されます。 XLSX形式は、データとともに表示レイヤーも保持します。 -データ検証:セルへの入力を特定の値または範囲に制限することで、エンドユーザーと共有するファイルでのデータ入力エラーを防止します。 -パスワード保護:ワークシートとワークブックをパスワードで保護し、読み取りと書き込みのアクセスを制御できます。これはCSVには全くない機能です。

これらの機能により、XLSX形式はレポート、ダッシュボード、財務モデル、および生データの保存以上の機能を必要とするあらゆるアプリケーションにおいて、標準的な選択肢となっています。

.NETプロジェクトにIronXLをインストールするにはどうすればよいですか?

IronXLはNuGetパッケージとして配布されています。 Visual Studio のパッケージ マネージャー コンソールからインストールしてください。

Install-Package IronXl
Install-Package IronXl
SHELL

または.NET CLIを使用して:

dotnet add package IronXl
dotnet add package IronXl
SHELL

インストール後、スプレッドシートを扱うすべてのファイルに using IronXL; を追加してください。 このパッケージは、 .NET Framework 4.6.2以降、 .NET Core 3.1以降、 .NET 5から.NET 10までを対象とし、Windows、Linux、macOS、Docker、およびAzureのデプロイ環境をサポートします。

追加のランタイム依存関係やMicrosoft Officeのインストールは不要です。 IronXLは独自のパーサーとライターを使用してXLSXファイルを読み書きするため、Officeをインストールできないサーバーサイドやヘッドレス環境に適しています。

CSV変換時のエンコード処理はどのように行っていますか?

多くのCSVファイルは、旧式のシステム、国際的なデータベース、または非ASCII文字を使用するサードパーティのエクスポートから生成されています。 エンコードを正しく処理することで、特殊文字や国際テキストが生成されるXLSXファイル内で正しく保持されます。

using IronXL;
using System.Text;

// Load CSV with explicit encoding specification
WorkBook workbook = WorkBook.LoadCSV("international-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",",
    encoding: Encoding.UTF8);

// Access the worksheet containing the encoded data
WorkSheet sheet = workbook.DefaultWorkSheet;

// Inspect a cell to verify encoding was preserved
string cellValue = sheet["A1"].StringValue;

// Save the converted Excel file
workbook.SaveAs("encoded-output.xlsx");
using IronXL;
using System.Text;

// Load CSV with explicit encoding specification
WorkBook workbook = WorkBook.LoadCSV("international-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",",
    encoding: Encoding.UTF8);

// Access the worksheet containing the encoded data
WorkSheet sheet = workbook.DefaultWorkSheet;

// Inspect a cell to verify encoding was preserved
string cellValue = sheet["A1"].StringValue;

// Save the converted Excel file
workbook.SaveAs("encoded-output.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力ファイル:XLSXファイル

C# CSV から XLSX への変換: 完全な開発者ガイド: 画像 2 - すべてのエンコーディングが処理された CSV から XLSX への変換

IronXLは、ほとんどの標準的なCSVファイルで使用されているUTF-8を含む一般的なエンコード形式を自動的に検出します。 Windows-1252、ISO-8859-1、Shift-JISなどの非標準エンコーディングのファイルの場合は、LoadCSV呼び出しに渡します。 Microsoft Learn の Encoding クラスのドキュメントには、サポートされているすべてのエンコーディング名が記載されています。

リモートサーバーからCSVデータを取得する場合は、LoadCSVを使用してロードします。 このパターンは、CSVファイルがサードパーティAPIからのHTTPレスポンスとして届く、クラウドホスト型 for .NETアプリケーションで有効です。

CSV変換後にセルの書式設定を適用するにはどうすればよいですか?

生のCSVデータには書式情報が含まれていません。 XLSX形式に変換した後、数値形式、フォント、背景色を適用して、スプレッドシートを読みやすくProfessionalにします。

using IronXL;
using IronXl.Styles;

// Load CSV data
WorkBook workbook = WorkBook.LoadCSV("sales-report.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet sheet = workbook.DefaultWorkSheet;

// Format the header row with bold text and background color
Range headerRow = sheet["A1:Z1"];
headerRow.Style.Font.Bold = true;
headerRow.Style.SetBackgroundColor("#4472C4");
headerRow.Style.Font.Color = "#FFFFFF";

// Apply currency format to a numeric column
Range priceColumn = sheet["C2:C100"];
priceColumn.Style.NumberFormat = "$#,##0.00";

// Auto-fit column widths for readability
sheet.AutoSizeColumn(0);
sheet.AutoSizeColumn(1);
sheet.AutoSizeColumn(2);

workbook.SaveAs("formatted-report.xlsx");
using IronXL;
using IronXl.Styles;

// Load CSV data
WorkBook workbook = WorkBook.LoadCSV("sales-report.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet sheet = workbook.DefaultWorkSheet;

// Format the header row with bold text and background color
Range headerRow = sheet["A1:Z1"];
headerRow.Style.Font.Bold = true;
headerRow.Style.SetBackgroundColor("#4472C4");
headerRow.Style.Font.Color = "#FFFFFF";

// Apply currency format to a numeric column
Range priceColumn = sheet["C2:C100"];
priceColumn.Style.NumberFormat = "$#,##0.00";

// Auto-fit column widths for readability
sheet.AutoSizeColumn(0);
sheet.AutoSizeColumn(1);
sheet.AutoSizeColumn(2);

workbook.SaveAs("formatted-report.xlsx");
Imports IronXL
Imports IronXl.Styles

' Load CSV data
Dim workbook As WorkBook = WorkBook.LoadCSV("sales-report.csv", fileFormat:=ExcelFileFormat.XLSX, ListDelimiter:=",")

Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Format the header row detecting bold header detecting bold detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting bold text detecting
$vbLabelText   $csharpLabel

IronXL は、Excel の UI で利用できる書式設定オプションを反映する Style プロパティを通じて、セルと範囲のスタイル設定を公開します。 数値形式は、Microsoft が文書化している Excel の数値形式構文に従います。 SetBackgroundColor メソッドは 16 進数のカラー文字列を受け入れるため、生成されたレポートにブランドカラーを簡単に適用できます。 利用可能なスタイルプロパティについては、セル書式設定APIの完全なリファレンスを参照してください。

CSVデータを変換した後、グラフを追加するにはどうすればよいですか?

CSVデータがExcelワークブックに格納されると、 IronXLはそのデータから直接グラフを作成することを可能にします。 グラフは、サーバーにMicrosoft Excelをインストールすることなく、生の数値を視覚的な洞察に変換します。

using IronXL;
using IronXl.Drawing.Charts;

// Load CSV and convert to Excel format
WorkBook workbook = WorkBook.LoadCSV("sales-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet worksheet = workbook.DefaultWorkSheet;

// Create a column chart from the converted CSV data
IChart chart = worksheet.CreateChart(ChartType.Column, 10, 0, 25, 10);

// Add data series from the worksheet ranges
IChartSeries series = chart.AddSeries("A2:A10", "B2:B10");
series.Title = "Monthly Sales";

// Configure chart appearance
chart.SetTitle("Sales Performance");
chart.SetLegendPosition(LegendPosition.Bottom);

// Plot the chart and save the workbook
chart.Plot();
workbook.SaveAs("sales-with-chart.xlsx");
using IronXL;
using IronXl.Drawing.Charts;

// Load CSV and convert to Excel format
WorkBook workbook = WorkBook.LoadCSV("sales-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet worksheet = workbook.DefaultWorkSheet;

// Create a column chart from the converted CSV data
IChart chart = worksheet.CreateChart(ChartType.Column, 10, 0, 25, 10);

// Add data series from the worksheet ranges
IChartSeries series = chart.AddSeries("A2:A10", "B2:B10");
series.Title = "Monthly Sales";

// Configure chart appearance
chart.SetTitle("Sales Performance");
chart.SetLegendPosition(LegendPosition.Bottom);

// Plot the chart and save the workbook
chart.Plot();
workbook.SaveAs("sales-with-chart.xlsx");
Imports IronXL
Imports IronXl.Drawing.Charts

' Load CSV and convert to Excel format
Dim workbook As WorkBook = WorkBook.LoadCSV("sales-data.csv", fileFormat:=ExcelFileFormat.XLSX, ListDelimiter:=",")

Dim worksheet As WorkSheet = workbook.DefaultWorkSheet

' Create a column chart from the converted CSV data
Dim chart As IChart = worksheet.CreateChart(ChartType.Column, 10, 0, 25, 10)

' Add data series from the worksheet ranges
Dim series As IChartSeries = chart.AddSeries("A2:A10", "B2:B10")
series.Title = "Monthly Sales"

' Configure chart appearance
chart.SetTitle("Sales Performance")
chart.SetLegendPosition(LegendPosition.Bottom)

' Plot the chart and save the workbook
chart.Plot()
workbook.SaveAs("sales-with-chart.xlsx")
$vbLabelText   $csharpLabel

出力

C# CSV から XLSX への変換: 完全開発者ガイド: 画像 3 - チャートを含む CSV ファイルを Excel ファイルに変換した際の出力

CreateChart メソッドは、チャートの種類と 4 つの位置指定パラメータ (上段、左列、下段、右列) を受け入れます。 AddSeries メソッドは、ワークシートのセル範囲をグラフの軸にリンクし、基となるデータが変更されたときに更新される動的な視覚化を作成します。 IronXL は、ChartType enum を介して、列、棒、線、面、円グラフのタイプをサポートします。 サポートされているチャート構成の完全なリストについては、 IronXLチャートチュートリアルを参照してください。

CSVファイルをデータテーブルに変換し、さらにExcelファイルに変換するにはどうすればよいですか?

エクスポート前にデータ操作が必要なシナリオでは、CSV データを DataTable を介して変換することで、最大限の柔軟性が得られます。 このアプローチにより、開発者は標準的な.NETデータアクセスパターンを使用して、変換プロセス中に行のフィルタリング、変換、ソート、または検証を行うことができます。

using IronXL;
using System.Data;

// Load CSV file into workbook
WorkBook sourceWorkbook = WorkBook.LoadCSV("input.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

// Convert worksheet to DataTable for manipulation
DataTable table = sourceWorkbook.DefaultWorkSheet.ToDataTable(true);

// Filter rows -- keep only rows where the third column value is greater than 100
DataRow[] filtered = table.Select("Column3 > 100");
DataTable filteredTable = filtered.Length > 0 ? filtered.CopyToDataTable() : table.Clone();

// Create new workbook from modified data
WorkBook outputWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet outputSheet = outputWorkbook.CreateWorkSheet("Processed Data");

// Import filtered DataTable back into Excel
outputSheet.LoadFromDataTable(filteredTable, true);

// Save the final XLSX file
outputWorkbook.SaveAs("processed-output.xlsx");
using IronXL;
using System.Data;

// Load CSV file into workbook
WorkBook sourceWorkbook = WorkBook.LoadCSV("input.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

// Convert worksheet to DataTable for manipulation
DataTable table = sourceWorkbook.DefaultWorkSheet.ToDataTable(true);

// Filter rows -- keep only rows where the third column value is greater than 100
DataRow[] filtered = table.Select("Column3 > 100");
DataTable filteredTable = filtered.Length > 0 ? filtered.CopyToDataTable() : table.Clone();

// Create new workbook from modified data
WorkBook outputWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet outputSheet = outputWorkbook.CreateWorkSheet("Processed Data");

// Import filtered DataTable back into Excel
outputSheet.LoadFromDataTable(filteredTable, true);

// Save the final XLSX file
outputWorkbook.SaveAs("processed-output.xlsx");
Imports IronXL
Imports System.Data

' Load CSV file into workbook
Dim sourceWorkbook As WorkBook = WorkBook.LoadCSV("input.csv", fileFormat:=ExcelFileFormat.XLSX, ListDelimiter:=",")

' Convert worksheet to DataTable for manipulation
Dim table As DataTable = sourceWorkbook.DefaultWorkSheet.ToDataTable(True)

' Filter rows -- keep only rows where the third column value is greater than 100
Dim filtered As DataRow() = table.Select("Column3 > 100")
Dim filteredTable As DataTable = If(filtered.Length > 0, filtered.CopyToDataTable(), table.Clone())

' Create new workbook from modified data
Dim outputWorkbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim outputSheet As WorkSheet = outputWorkbook.CreateWorkSheet("Processed Data")

' Import filtered DataTable back into Excel
outputSheet.LoadFromDataTable(filteredTable, True)

' Save the final XLSX file
outputWorkbook.SaveAs("processed-output.xlsx")
$vbLabelText   $csharpLabel

出力

C# CSV から XLSX へ: 完全開発者ガイド: 画像 4 - CSV から DataTable を経て XLSX 出力へ

ToDataTable メソッドは、ワークシートのデータを.NET DataTable にエクスポートします。ブール型のパラメーターは、最初の行を列ヘッダーとして扱うかどうかを制御します。 LoadFromDataTable は、2 番目のパラメータが true の場合、データをインポートし、列ヘッダーを最初の行として書き込みます。 この双方向変換により、CSVファイルの取り込みとExcelファイルの出力の間で、LINQおよび.NETの操作を完全に利用できるようになります。 その他のオプションについては、 IronXL DataTableのドキュメントを参照してください。

XLSXファイルをファイルパスではなくストリームに保存するにはどうすればよいですか?

サーバー側のアプリケーションでは、一時ファイルをディスクに書き込むのではなく、ExcelファイルをHTTPレスポンスに直接送信する必要がある場合がよくあります。 IronXL はこの目的のためにワークブックを MemoryStream に保存することをサポートしています。

using IronXL;
using System.IO;

// Load and convert CSV data
WorkBook workbook = WorkBook.LoadCSV("report-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet sheet = workbook.DefaultWorkSheet;

// Save workbook to a memory stream instead of a file
using MemoryStream stream = new MemoryStream();
workbook.SaveAs(stream);

// Reset stream position for reading
stream.Position = 0;

// The stream is now ready to pass to an HTTP response, upload to cloud storage,
// or attach to an email. For ASP.NET Core:
// return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report.xlsx");

// Write bytes to verify stream contains XLSX data
byte[] xlsxBytes = stream.ToArray();
Console.WriteLine($"Generated XLSX size: {xlsxBytes.Length} bytes");
using IronXL;
using System.IO;

// Load and convert CSV data
WorkBook workbook = WorkBook.LoadCSV("report-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

WorkSheet sheet = workbook.DefaultWorkSheet;

// Save workbook to a memory stream instead of a file
using MemoryStream stream = new MemoryStream();
workbook.SaveAs(stream);

// Reset stream position for reading
stream.Position = 0;

// The stream is now ready to pass to an HTTP response, upload to cloud storage,
// or attach to an email. For ASP.NET Core:
// return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report.xlsx");

// Write bytes to verify stream contains XLSX data
byte[] xlsxBytes = stream.ToArray();
Console.WriteLine($"Generated XLSX size: {xlsxBytes.Length} bytes");
Imports IronXL
Imports System.IO

' Load and convert CSV data
Dim workbook As WorkBook = WorkBook.LoadCSV("report-data.csv", fileFormat:=ExcelFileFormat.XLSX, ListDelimiter:=",")

Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Save workbook to a memory stream instead of a file
Using stream As New MemoryStream()
    workbook.SaveAs(stream)

    ' Reset stream position for reading
    stream.Position = 0

    ' The stream is now ready to pass to an HTTP response, upload to cloud storage,
    ' or attach to an email. For ASP.NET Core:
    ' Return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "report.xlsx")

    ' Write bytes to verify stream contains XLSX data
    Dim xlsxBytes As Byte() = stream.ToArray()
    Console.WriteLine($"Generated XLSX size: {xlsxBytes.Length} bytes")
End Using
$vbLabelText   $csharpLabel

ストリームに保存することで、ディスクの読み書き操作を回避し、一時ファイルのクリーンアップも不要になります。 このパターンは、XLSXファイルがオンデマンドで生成されるASP.NET Coreのファイルダウンロードエンドポイントで広く使用されています。 SaveAs(Stream) オーバーロードは、完全で有効な XLSX アーカイブを任意の書き込み可能なストリーム インスタンスに書き込みます。

変換後のワークブックで複数のワークシートを操作するにはどうすればよいですか?

1つのXLSXワークブックには、複数のワークシートを含めることができます。 CSVファイルを変換すると、デフォルトではワークブックに1つのシートが格納されます。 関連データを整理するために、追加のシートをプログラムで作成できます。

using IronXL;

// Load primary CSV data
WorkBook workbook = WorkBook.LoadCSV("quarterly-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

// Rename the default sheet created from the CSV
WorkSheet q1Sheet = workbook.DefaultWorkSheet;
q1Sheet.Name = "Q1 Data";

// Create additional worksheets for summary information
WorkSheet summarySheet = workbook.CreateWorkSheet("Summary");

// Write summary headers and formulas
summarySheet["A1"].Value = "Total Records";
summarySheet["B1"].Formula = $"=COUNTA('{q1Sheet.Name}'!A:A)-1";

summarySheet["A2"].Value = "Data Sheet";
summarySheet["B2"].Value = q1Sheet.Name;

// Save the multi-sheet workbook
workbook.SaveAs("multi-sheet-report.xlsx");
using IronXL;

// Load primary CSV data
WorkBook workbook = WorkBook.LoadCSV("quarterly-data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    ListDelimiter: ",");

// Rename the default sheet created from the CSV
WorkSheet q1Sheet = workbook.DefaultWorkSheet;
q1Sheet.Name = "Q1 Data";

// Create additional worksheets for summary information
WorkSheet summarySheet = workbook.CreateWorkSheet("Summary");

// Write summary headers and formulas
summarySheet["A1"].Value = "Total Records";
summarySheet["B1"].Formula = $"=COUNTA('{q1Sheet.Name}'!A:A)-1";

summarySheet["A2"].Value = "Data Sheet";
summarySheet["B2"].Value = q1Sheet.Name;

// Save the multi-sheet workbook
workbook.SaveAs("multi-sheet-report.xlsx");
Imports IronXL

' Load primary CSV data
Dim workbook As WorkBook = WorkBook.LoadCSV("quarterly-data.csv", fileFormat:=ExcelFileFormat.XLSX, ListDelimiter:=",")

' Rename the default sheet created from the CSV
Dim q1Sheet As WorkSheet = workbook.DefaultWorkSheet
q1Sheet.Name = "Q1 Data"

' Create additional worksheets for summary information
Dim summarySheet As WorkSheet = workbook.CreateWorkSheet("Summary")

' Write summary headers and formulas
summarySheet("A1").Value = "Total Records"
summarySheet("B1").Formula = $"=COUNTA('{q1Sheet.Name}'!A:A)-1"

summarySheet("A2").Value = "Data Sheet"
summarySheet("B2").Value = q1Sheet.Name

' Save the multi-sheet workbook
workbook.SaveAs("multi-sheet-report.xlsx")
$vbLabelText   $csharpLabel

CreateWorkSheet メソッドは、ワークブックに新しい空のシートを追加します。 シートは名前またはインデックス(workbook.WorkSheets)でアクセスできます。 シート間の数式参照には、標準の Excel 表記法である 'SheetName'!CellRef を使用します。 複数シート操作の詳細については、 IronXLの複数ワークシートガイドを参照してください。

次のステップは何ですか?

IronXLを使えば、C#でCSVファイルをXLSXに変換するのに必要なコードはわずか数行で、Microsoft Officeに依存することなく、完全に準拠したExcelワークブックを作成できます。 上記の例は、基本的なCSVファイルの読み込みと保存から、エンコード処理、セル書式設定、グラフ作成、データテーブルとの統合、ストリーム出力、複数シートのワークブックまで、ワークフロー全体を網羅しています。

このガイドで説明する主な機能:

  • WorkBook.LoadCSV および SaveAs を使用した基本的な CSV から XLSX への変換
  • 国際文字セットのエンコード仕様 変換後にセルと範囲の書式設定が適用されます
  • XLSXファイルに直接埋め込まれたグラフ作成機能
  • フィルタリングおよび変換されたデータのためのデータテーブル往復通信
  • サーバー側ファイル配信用のMemoryStream出力
  • 単一のCSVソースから複数シートのワークブックを作成する

IronXLは、 .NET Framework、 .NET Core、および.NET 5から10までのバージョンにおいて、Windows、Linux、macOS、Docker、Azure環境でのデプロイメントをサポートしています。より詳細な機能については、 IronXLのドキュメントを参照するか、 Excel APIオブジェクトリファレンスを参照するか、 Excelファイルの読み込みセルの結合数式の適用などのトピックに関するIronXLのハウツーガイドをご覧ください。 無料トライアル版をダウンロードして開発環境で全機能をテストするか、本番環境への導入用にライセンスをご購入ください

今IronXLを始めましょう。
green arrow pointer

よくある質問

Microsoft Office を使用せずに C# で CSV ファイルを XLSX に変換するにはどうすればよいですか?

IronXLのWorkBook.LoadCSVメソッドを使用してCSVファイルを読み込み、workbook.SaveAs('output.xlsx')を呼び出してXLSXファイルに書き込みます。IronXLはMicrosoft OfficeやOpen XML SDKを必要とせず、独自のパーサーを使用してExcelファイルの読み取りと書き込みを行います。

C# で CSV を Excel に変換するにはどのNuGetパッケージを使用する必要がありますか?

Visual Studio では「 Install-Package IronXL 」、 .NET CLI では「dotnet add package IronXL 」を使用してIronXL NuGetパッケージをインストールしてください。このパッケージは、 .NET Framework 4.6.2 以降、およびすべて for .NET Coreおよび.NET 5 から 10 までのランタイムを対象としています。

IronXLで CSV ファイルをロードするときに区切り文字をどのように指定しますか?

ListDelimiter パラメータを WorkBook.LoadCSV に渡します。たとえば、コンマ区切りのファイルの場合は WorkBook.LoadCSV('data.csv', fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ',')、セミコロン区切りのファイルの場合は ListDelimiter: ';' となります。

IronXL は、非 ASCII 文字または国際文字を含む CSV ファイルを処理できますか?

はい。LoadCSVのencodingパラメータにSystem.Text.Encodingインスタンスを渡してください。IronXLは、ほとんどの標準ファイルに対してUTF-8を自動的に検出します。Windows-1252、ISO-8859-1、またはその他のエンコードの場合は、国際文字を保持するため、エンコードを明示的に指定してください。

IronXLを使用して CSV データから生成された Excel ファイルにグラフを追加するにはどうすればよいですか?

CSVファイルを読み込んだ後、worksheet.CreateChart(ChartType.Column, top, left, bottom, right) を呼び出してグラフを作成し、chart.AddSeries を使ってセル範囲をリンクし、保存前にchart.Plot() を呼び出します。IronXLは、縦棒グラフ、横棒グラフ、折れ線グラフ、面グラフ、円グラフをサポートしています。

ASP.NET Coreで HTTP 応答用に生成された XLSX ファイルを MemoryStream に保存するにはどうすればよいですか?

workbook.SaveAs(stream) を呼び出します(stream は MemoryStream インスタンスです)。stream.Position を 0 にリセットしてから返します。ASP.NET ASP.NET Coreコントローラーでは、File(stream, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'report.xlsx') を返します。

IronXL は、Excel に書き込む前に CSV データを DataTable に変換できますか?

はい。LoadCSVでCSVを読み込み、workbook.DefaultWorkSheet.ToDataTable(true) を呼び出してDataTableにエクスポートします。データのフィルタリングまたは変換後、新しいワークブックを作成し、outputSheet.LoadFromDataTable(table, true) を呼び出して変更後のデータをインポートします。

IronXL は、CSV からの変換時に複数のワークシートをサポートしますか?

はい。CSVファイルを読み込むと、ワークブックにはデフォルトで1つのシートが含まれます。シートを追加するには、workbook.CreateWorkSheet('SheetName') を呼び出します。シートは、Excelの標準的なシート間数式構文を使用して相互参照できます。

IronXL はど for .NETバージョンとプラットフォームをサポートしていますか?

IronXL は、 .NET Framework 4.6.2 以降、 .NET Core 3.1、 .NET 5 から.NET 10 までをサポートしています。Windows、Linux、macOS、Docker、Azure で実行できるため、デスクトップとサーバー側の両方の展開に適しています。

CSV 変換後に太字のヘッダーや数値の書式などのセル書式を適用するにはどうすればよいですか?

CSVファイルを読み込んだ後、sheet['A1:Z1']でRangeにアクセスし、Style.Font.Bold = true、Style.SetBackgroundColor('#hex')、またはStyle.NumberFormat = '$#,##0.00'を設定します。IronXLは、セルと範囲のStyleプロパティを通じて、Excelスタイル設定APIを完全に公開しています。

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

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

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね