特定の列データに引用符を設定してCSVファイルを出力する

今回は「DioDocs(ディオドック)」の機能で、ワークブックをCSVファイルとして出力する際に、引用符を設定する方法を紹介します。

引用符を設定してCSVファイルとして出力する機能は、DioDocs for Excelの従来バージョンでも用意されていた機能ですが、2024年3月6日(水)にリリースされた「DioDocs V7J」では、特定の列データにのみ引用符を設定してCSVファイルとして出力できるようになっています。

引用符を設定しない(デフォルト)

列データに引用符を設定せずにCSVファイルとして出力するには、CsvSaveOptions.ValueQuoteTypeValueQuoteType.Neverにするか、CsvSaveOptions.ValueQuoteTypeを設定しない状態でWorkbook.Saveメソッドを実行します。

// ワークブックを初期化
Workbook workbook = new Workbook();

// 既定のワークシートを取得
IWorksheet worksheet = workbook.Worksheets[0];

// データ
object[,] data = new object[,]{
 {"名前", "出身地", "誕生日", "性別", "体重", "身長", "電話番号"},
 {"太郎", "東京都", new DateTime(1968, 6, 8), "男", 80, 180, "03-9876-5432"},
 {"花子", "千葉県", new DateTime(1972, 7, 3), "女", 72, 168, "098-765-4321"},
 {"二郎", "神奈川県", new DateTime(1964, 3, 2), "男", 71, 179, "123-456-7890"},
 {"三郎", "埼玉県", new DateTime(1972, 8, 8), "男", 80, 171, "03-5432-6789"},
 {"節子", "茨城県", new DateTime(1986, 2, 2), "女性", 58, 161, "980-567-4321"},
 {"良子", "東京都", new DateTime(1993, 2, 5), "女性", 71, 180, "98-765-1234"}};

// データを設定
worksheet.Range["A1:G5"].Value = data;
worksheet.Range["A:G"].ColumnWidth = 20;

// CSVに保存する際のオプション設定
CsvSaveOptions saveOptions = new CsvSaveOptions
{
    ColumnSeparator = ",",
    RowSeparator = "\r\n",
    ValueQuoteType = ValueQuoteType.Never
};

// ワークブックをCSVとして保存
workbook.Save(@"Result.csv", saveOptions);

以下のようにすべての列データに引用符が設定されていない状態で出力できます。

引用符を設定しない(デフォルト)

すべての列に引用符を設定

列データに引用符を設定してCSVファイルとして出力するには、CsvSaveOptions.ValueQuoteTypeValueQuoteType.Alwaysを設定した状態でWorkbook.Saveメソッドを実行します。

// ワークブックを初期化
Workbook workbook = new Workbook();

// 既定のワークシートを取得
IWorksheet worksheet = workbook.Worksheets[0];

// データ
object[,] data = new object[,]{
 {"名前", "出身地", "誕生日", "性別", "体重", "身長", "電話番号"},
 {"太郎", "東京都", new DateTime(1968, 6, 8), "男", 80, 180, "03-9876-5432"},
 {"花子", "千葉県", new DateTime(1972, 7, 3), "女", 72, 168, "098-765-4321"},
 {"二郎", "神奈川県", new DateTime(1964, 3, 2), "男", 71, 179, "123-456-7890"},
 {"三郎", "埼玉県", new DateTime(1972, 8, 8), "男", 80, 171, "03-5432-6789"},
 {"節子", "茨城県", new DateTime(1986, 2, 2), "女性", 58, 161, "980-567-4321"},
 {"良子", "東京都", new DateTime(1993, 2, 5), "女性", 71, 180, "98-765-1234"}};

// データを設定
worksheet.Range["A1:G5"].Value = data;
worksheet.Range["A:G"].ColumnWidth = 20;

// CSVに保存する際のオプション設定
CsvSaveOptions saveOptions = new CsvSaveOptions
{
    ColumnSeparator = ",",
    RowSeparator = "\r\n",
    ValueQuoteType = ValueQuoteType.Always
};

// ワークブックをCSVとして保存
workbook.Save(@"Result.csv", saveOptions);

以下のようにすべての列データに引用符が設定されている状態で出力できます。

すべての列に引用符を設定

特定の列に引用符を設定

特定の列データにのみ引用符を設定してCSVファイルとして出力するには、CsvSaveOptions.QuoteColumnsで引用符を使用する列を設定した状態でWorkbook.Saveメソッドを実行します。

// ワークブックを初期化
Workbook workbook = new Workbook();

// 既定のワークシートを取得
IWorksheet worksheet = workbook.Worksheets[0];

// データ
object[,] data = new object[,]{
 {"名前", "出身地", "誕生日", "性別", "体重", "身長", "電話番号"},
 {"太郎", "東京都", new DateTime(1968, 6, 8), "男", 80, 180, "03-9876-5432"},
 {"花子", "千葉県", new DateTime(1972, 7, 3), "女", 72, 168, "098-765-4321"},
 {"二郎", "神奈川県", new DateTime(1964, 3, 2), "男", 71, 179, "123-456-7890"},
 {"三郎", "埼玉県", new DateTime(1972, 8, 8), "男", 80, 171, "03-5432-6789"},
 {"節子", "茨城県", new DateTime(1986, 2, 2), "女性", 58, 161, "980-567-4321"},
 {"良子", "東京都", new DateTime(1993, 2, 5), "女性", 71, 180, "98-765-1234"}};

// データを設定
worksheet.Range["A1:G5"].Value = data;
worksheet.Range["A:G"].ColumnWidth = 20;

// CSVに保存する際のオプション設定
CsvSaveOptions saveOptions = new CsvSaveOptions
{
    ColumnSeparator = ",",
    RowSeparator = "\r\n",
    QuoteColumns = new int[] { 0, 1, 3, 6 }
};

// ワークブックをCSVとして保存
workbook.Save(@"Result.csv", saveOptions);

以下のように指定した列データにのみ引用符が設定されている状態で出力できます。

特定の列に引用符を設定

データをCSVファイルでやりとりする際には、受け取る側のシステムが要求する形式に合わせてCSVファイルを作成する必要がありますが、DioDocs for Excelではこのようにさまざまな要求に対して柔軟に対応することができます。

CSVファイルで出力する際のカスタマイズについては、今回紹介していない機能もたくさんありますので、興味のある方は以下のデモやヘルプをご覧いただければと思います。

さいごに

弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。

また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。

\  この記事をシェアする  /