Foren: Q&Aフォーラム (Thread #15472)

csvmake: SHIFT-JIS 以外の文字コード対応希望 (2007-07-11 01:49 by baizyeh #30586)

いつも大変お世話になっております。

PHP と csvmake を使って、Excel をアップロードするだけ
で簡単に Excel の中身を検索できるアプリケーションを作
ろうかと考えております。

いくつか試行錯誤をやってみました結果、職場で使っている
Excel データが多言語になっており、csvmake で変換する
と SHIFT-JIS 規格外文字が一律“?”に化けてしまい、
外字が検索から外されてしまいますので、本語または
アクセント文字を含まない ASCII 文字しか現状扱っており
ません。

このツールは使い方によって簡単にパワフルなアプリケー
ションを組めますので、可能であれば UTF-8 などの多言語
対応文字コード出力をご対応頂けると、得られるデータの
再利用価値がより高められると考えておりますので、
よろしくお願いします。

にくまん

RE: csvmake: SHIFT-JIS 以外の文字コード対応希望 (2007-07-13 09:25 by sky_seeker99 #30643)

baizyehさん、提案していただきありがとうございます。

csvmakeプログラムはMS-Excelに命令を送って、実際はMS-ExcelがCSVファイルに変換しています。
SJISにしているのもMS-Excelが行っているので、UTF-8に変換するのは困難です。
MS-ExcelにUTF-8やUTF-16への変換機能があれば、別なのですが・・・。

他の国の言語は他の国のMS-Excel、Windowsが入っていれば正しく変換可能かと思います。

最近、研究中なのですが、ExcelファイルをMS-Excelを使用しないでCSVファイルに変換するプログラム
csvmake_xであるならば、UTF-16に変換できそうですが、こちらで考えてみようかと思います。
(Excelファイルの中身はUTF-16+ASCII半角文字の混合なんです。実は・・・。csvmake_xではSJISにいちいち変換しています。)

すぐには取り掛かれませんが、気長にお待ちください。

Reply to #30586

RE: csvmake: SHIFT-JIS 以外の文字コード対応希望 (2007-07-20 14:08 by baizyeh #30785)

私の場合で利用させて頂きたいのは文字列が含まれるセル
の検索だけですので、sky_seeker さんの開発しやすい
ほうであれば Excel 依存/非依存どちらでも結構ですので、
どうぞお時間かけて構いません。<(_^_)>

ところで、

>最近、研究中なのですが、ExcelファイルをMS-Excelを使用しないでCSVファイルに変換するプログラム
>csvmake_xであるならば、UTF-16に変換できそうですが、こちらで考えてみようかと思います。
>(Excelファイルの中身はUTF-16+ASCII半角文字の混合なんです。実は・・・。csvmake_xではSJISにいちいち変換しています。)

他に UTF-8(または他の Unicode 文字コードを扱える)
対応 Excel⇒CSV のソリューションはないか、いろいろ
探してみましたところ、xls2csv という Perl スクリプトが
対応しているようです。
苦労して CPAN や MS のコンパイル環境を手に入れてようやく
動作させたところ、ASCII 文字だけが化けてショックでした。
なるほど、ASCII が Unicode に変換されていないんですね。
これはとても勉強になりました。(^^;)

あと、OpenOffice も多言語の CSV 出力ができますが、
そちらはそちらで、API が難しくて理解できませんでした。
Reply to #30586

RE: csvmake: SHIFT-JIS 以外の文字コード対応希望 (2008-08-27 21:21 by sky_seeker99 #38521)

長らくお待たせしました。
csvmake_xでは色々と不都合があり、OpenOffice.orgをOLEで起動してExcelファイルからCSVファイルに変換するプログラム
「Excelファイル->CSVファイル変換プログラム(OpenOffice.org版)」を作成しました。
今の所、UTF-8に対応はしています。しかし、実行中にOpenOffice.orgのCALCの画面を消す事ができず、調査中です。
もし、よろしければお使いください。

かなり時間が過ぎているので、不要なのかもしれませんが・・・。(^_^A;
Reply to #30785

RE: csvmake: SHIFT-JIS 以外の文字コード対応希望 (2009-02-17 15:35 by baizyeh #41933)

いいえいいえ、私も返信の件数を確認せずに返事が大変遅れました。すみませんでした。<(_^_)>

要望を書いた当時、結局ユーザには入力 Excel を日本語限定に制限し、なんとかアプリケーションをリリースしました。

今、私は別の会社に転職しましたので、仕事では多言語変換の需要はなくなりましたが、「Excelファイル->CSVファイル変換プログラム(OpenOffice.org版)」は気になりますので、よろしければ公開(もしくはご提供)して頂けますでしょうか。

にくまん
Reply to #38521

RE: csvmake: SHIFT-JIS 以外の文字コード対応希望 (2009-02-17 21:06 by sky_seeker99 #41940)

Excelファイル->CSVファイル変換プログラム(OpenOffice.org版)は

http://csvpp.sourceforge.jp/pukiwiki/pukiwiki.php?download%2Fkobetsu

「Excelファイル->CSVファイル変換プログラム(OpenOffice.org版) 1.01」
からダウンロードできます。

しかし、旧版のopenoffice.org 2.4.1では動作するのですが、最新版のopenoffice.org 3.0 では動作しません。
なぜか、マクロに互換性が無いみたいです。説明書が無いので、今の所はopenoffice.org 3.0 に対応していません。
(何故、互換性をなくしてしまったのだろうか???)

また、画面を非表示にするとシートの移動が出来ないバグがあるらしく、表示して変換になります。
機能的には問題はないのですが、いまいち釈然としないソフトになってしまいました。

試しに使ってみてください。

では、よろしくお願いいたします。
Reply to #41933

RE: csvmake: SHIFT-JIS 以外の文字コード対応希望 (2009-04-25 14:19 by sky_seeker99 #43433)


>しかし、旧版のopenoffice.org 2.4.1では動作するのですが、最新版のopenoffice.org 3.0 では動作しません。
>なぜか、マクロに互換性が無いみたいです。説明書が無いので、今の所はopenoffice.org 3.0 に対応していません。
>(何故、互換性をなくしてしまったのだろうか???)

問題はC++のコンパイラ側にありまして、TURBO C++ ExplororでコンパイルしたプログラムはすべてのOpenOffice.orgバージョンで動作しません。OLE部分の受け渡しが正常に行われてない様です。
試しにC++Builder 5で再コンパイルしたプログラムはopenoffice.org 3.0でも正常動作しました。(以前の2.4のバージョンでも動作します。)



Reply to #41940