Q136:MySQLのデータをエクセルファイルに読み出すルーティンで、何か良い方法がないか。
Q136-1:
MySQLのデータは列数が30以上あり、列型は文字列型、実数型、日付型が混在しており、データの列名を頭に入れてエクセルファイルへエクスポートしたいのですが、列名は数値型、日付型の列には指定できず、今は文字列で列名を指定したテーブルを別途エクセルファイルへ出して、データのエクセルファイルへ挿入するという原始的なやりかたで行っています。
SetColumnTypeで列型をMySQLから読み出した段階で文字列型に変更し、列名を挿入、エクセルファイルへ読み出す方法もあるかと考えましたが、データをMySQL DBに読み込む際、SetColumnTypeで変更しても、元のデータに戻るか心配で止めました。
エクセルファイルで日付列を標準、数値に変換すると日付が数値表示になり、元の日付列に戻しても、日付に変更できない経験があったからです。
何か方策があれば、アドバイスいただけませんか?
A136-1:
お問い合わせの件、MZ Platformにおける文字列型以外の列を含むテーブルデータをExcelファイルに出力する際、列名を第0行に追加し出力したいが、そもそもテーブルデータに列名の行を追加できないと言うことであると存じます。
いくつか方法が考えられますが、もともとのテーブルデータに列名の行を追加するのではなく、Excelファイル出力の際だけ、別途列名を出力すると言う動作ではいかがでしょうか。
サンプルを掲載いたしますので、ご参照ください。
その他、Excel出力の際にだけ、出力用の文字列のみのテーブルデータを別途生成し出力すると言う方法等も考えられます。
関連ファイル:Excel出力テスト.mzax
ご連絡
今までは、指摘されました後者の方法を取っていました。サンプルを見せていただきました。サンプルはセル毎の処理で、扱うテーブルの内容から、処理時間がかかるかと、今回はテーブルをMySQLから読んだ後、列型を文字列にして、ヘッダーを最初の行に挿入することにしました。今のところ、問題なく動いているようです。