Excel と CSV(カンマ区切り値)は、様々な表形式のデータを管理および保存するためによく使われる2つのファイル形式です。Excel はデータを行と列で組織化し、データ操作、分析、可視化など豊富な機能をユーザーに提供します。一方、CSV はデータを軽量で多様なアプリケーションと高い互換性を持つプレーンテキスト形式で保存されます。Excel を CSV に変換することで、ユーザーは異なるプログラム間で Excel データを交換したりインポートしたりすることができます。CSV を Excel に変換することで、ユーザーはグラフの作成や公式の適用など、より高度なデータ分析機能を利用することができます。この記事では、Spire.XLS for C++ を使用して C++ で Excel を CSV におよび CSV を Excel に変換する方法について説明します。
Spire.XLS for C++ をインストールします
Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。
Spire.XLS for C++ を C++ アプリケーションに統合する方法
Excel を CSV に変換する
Spire.XLS for C++ は、Excel ファイル内のシートを CSV に変換する XlsWorksheet->SaveToFile (LPCWSTR_S fileName, LPCWSTR_S separator, Spire::Common::Encoding* encoding) メソッドを提供します。詳細な手順は次のとおりです。
- Workbook クラスのインスタンスを初期化します。
- Workbook->LoadFromFile() メソッドを使用して Excel ファイルをロードします。
- Workbook->GetWorksheets()->Get(int index) メソッドを使用して、ワークブック内の特定のシートをインデックスで取得します。
- XlsWorksheet->SaveToFile (LPCWSTR_S fileName, LPCWSTR_S separator, Spire::Common::Encoding* encoding) メソッドを使用して、ワークシートを CSV ファイルに保存します。
- C++
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main()
{
//Workbookクラスのインスタンスを初期化する
Workbook* workbook = new Workbook();
//Excelファイルをロードする
workbook->LoadFromFile(L"Input.xlsx");
//最初のシートを取得する
Worksheet* sheet = workbook->GetWorksheets()->Get(0);
//シートをCSVファイルに保存する
sheet->SaveToFile(L"ExcelToCsv.csv", L",", Encoding::GetUTF8());
workbook->Dispose();
delete workbook;
}
Excel の表示されるデータをCSV に変換する
上記のコードを使用して Excel ワークシートを CSV に変換する場合、表示データと非表示データが CSV として保存されます。表示データのみを保存する場合は、XlsWorksheet->SaveToFile (LPCWSTR_S fileName, LPCWSTR_S separator, bool retainHiddenData) メソッドを使用してください。詳細な手順は次のとおりです。
- Workbook クラスのインスタンスを初期化します。
- Workbook->LoadFromFile() メソッドを使用して Excel ファイルをロードします。
- Workbook->GetWorksheets()->Get(int index) メソッドを使用して、ワークブック内の特定のシートをインデックスで取得します。
- XlsWorksheet->SaveToFile (LPCWSTR_S fileName, LPCWSTR_S separator, bool retainHiddenData) メソッドを使用して、シート内の表示されるデータを CSV ファイルに保存します。
- C++
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main()
{
//Workbookクラスのインスタンスを初期化する
Workbook* workbook = new Workbook();
//Excelファイルをロードする
workbook->LoadFromFile(L"Input.xlsx");
//最初のシートを取得する
Worksheet* sheet = workbook->GetWorksheets()->Get(0);
//シートの表示されるデータをCSVファイルに保存する
sheet->SaveToFile(L"ExcelToCsv1.csv", L",", false);
workbook->Dispose();
delete workbook;
}
CSV を Excel に変換する
CSV を Excel に変換するには、Workbook->LoadFromFile(LPCWSTR_S fileName, LPCWSTR_S separator) メソッドを使用して CSV ファイルをロードします。次に、Workbook->SaveToFile (LPCWSTR_S fileName, ExcelVersion version) メソッドを使用して Excel ファイルに保存します。詳細な手順は次のとおりです。
- Workbook クラスのインスタンスを初期化します。
- Workbook->LoadFromFile(LPCWSTR_S fileName,LPCWSTR_S separator) メソッドを使用して、セパレータ付きの CSV ファイルをロードします。
- Workbook->GetWorksheets()->Get(int index) メソッドを使用して、特定のシートをインデックスで取得します。
- Worksheet->GetRange(LPCWSTR_S name)->SetIgnoreErrorOptions(IgnoreErrorType::NumberAsText) メソッドを使用して、特定のセル範囲の数値をテキストとして保存するときに「エラーを無視する」を設定します。
- Worksheet->GetAllocatedRange()->AutoFitColumns() メソッドを使用して列幅を自動調整します。
- Workbook->SaveToFile (LPCWSTR_S fileName, ExcelVersion version) メソッドを使用して、CSV を Excel ファイルに保存します。
- C++
#include "Spire.Xls.o.h";
using namespace Spire::Xls;
int main()
{
//Workbookクラスのインスタンスを初期化する
Workbook* workbook = new Workbook();
//セパレータ付きCSVファイルをロードする
workbook->LoadFromFile(L"ExcelToCSV.csv", L",");
//最初のシートを取得する
Worksheet* sheet = workbook->GetWorksheets()->Get(0);
//特定のセル範囲の数値をテキストとして保存するときに「エラーを無視する」を設定
sheet->GetRange(L"C2:C11")->SetIgnoreErrorOptions(IgnoreErrorType::NumberAsText);
//列幅を自動調整する
sheet->GetAllocatedRange()->AutoFitColumns();
//CSVをXLSXファイルに保存する
workbook->SaveToFile(L"CsvToExcel.xlsx", ExcelVersion::Version2013);
workbook->Dispose();
delete workbook;
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。