8 返信 最新の回答 日時: Apr 19, 2009 9:34 PM ユーザー:tella

    CSVエクスポートについて

    tella

      タイトル

      CSVエクスポートについて

      フォーラムに投稿

      レコードの内容をCSVにエクスポートする際なんですが、フィールドの内容1つずつ「””」で囲まれてしまいます。

      エクスポートする際の設定などでこれをとってしまう事はできないでしょうか。

       

      ちなみにExcelで一回保存し直せば、””がなくなるようですが、その手間を省きたいのです。

       

       使用環境

      FM10、FM9(WinXPSP3)

      FMServer10(Win2003serverSP2)

       

      よろしくお願いします。 

        • 1. Re: CSVエクスポートについて
          e_nagata
            

          オーソドックスな手法ですが,書き出したいフィールドを","と結合して格納する計算フィールドを作成し,tab 区切りテキストなどで書き出せば早いのではないでしょうか。

           

          1. 計算フィールドZ を作成

           

          式 = フィールドA & "," &フィールドB & "," & フィールドC & "," & フィールドD 

           

          2. レコードのエクスポートで,フィールドZ を tab 区切りテキストで書き出し。

          (保存するファイルの拡張子は,csvにする)

           

          • 2. Re: CSVエクスポートについて
            tella
              

            neyoさんこんにちは。 

             

            ご返答ありがとうございます。

            書いていただいた通りに行ったところ、問題なくできました。

            ,をつけてtab区切りテキストで出力する事は盲点でした。

            勉強になりました。ありがとうございます。

             

            ただ、実はテーブルが約50個ほどありまして、この方法だと

            とても大変な事になってしまっています。

            これをなんとかするにはどうすればいいでしょう?

             

            引き続きよろしくお願いいたします。

            • 3. Re: CSVエクスポートについて
              Hiro
                 お好みの書式指定のXSLスタイルシートを用意して、そのカスタム書式で「XML形式エクスポート」されると良いでしょう。
              • 4. Re: CSVエクスポートについて
                e_nagata
                  

                テーブルがたくさんあったんですね。

                 

                少々複雑な方法になりますが,XMLスタイルシートを使用したエクスポートを行えば,任意のセパレータを設定したテキストファイルの出力ができるようです。

                 

                FileMaker Pro のインストールフォルダ内にある,日本語エキストラ→サンプル→XML→Export  のフォルダを開くと、custom_delim.xsl というサンプルファイルがありますので、

                ファイルをコピーしてからメモ帳やXML対応のテキストエディタで開き,下記のように編集します。

                 

                変更点1. 下記の3行目の出力ファイルの文字コードを、UTF-8からShift_JISに変更する。

                変更点2. 下記の21行目のセパレータ文字を、 *から,に変更する。

                変更点3. 下記の24行目の改行コードとして 
 を指定する。(Windowsの改行コード)

                 

                 ●編集後の内容(元のファイルにあるコメント部分を省いてます) 

                 

                <?xml version="1.0" encoding="UTF-8"?>

                <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fmp="http://www.filemaker.com/fmpxmlresult">

                <xsl:output method="text" version="1.0" encoding="Shift_JIS" indent="no"/>

                <xsl:template match="fmp:FMPXMLRESULT">

                <xsl:for-each select="fmp:RESULTSET/fmp:ROW">

                <xsl:for-each select="fmp:COL">

                <xsl:choose>

                <xsl:when test="position()=last()">

                <xsl:value-of select="fmp:DATA"/>

                </xsl:when>

                <xsl:otherwise>

                <xsl:value-of select="fmp:DATA"/>

                <xsl:value-of select="$delimiter"/>

                </xsl:otherwise>

                </xsl:choose>

                </xsl:for-each>

                <xsl:value-of select="$newrecord"/>

                </xsl:for-each>

                </xsl:template>

                <xsl:variable name="delimiter">

                <xsl:text>,</xsl:text>

                </xsl:variable>

                <xsl:variable name="newrecord">

                <xsl:text>&#13;</xsl:text>

                </xsl:variable>

                </xsl:stylesheet>

                 

                または上記をメモ帳で新規ファイルにコピペして、文字コードをUTF-8に変更して保存しても OK かと思います。

                 

                上記のスタイルシートの作成後,FileMaker Pro から XML のエクスポートを実行し,XML と XSLオプションで「XSLスタイルシートを使用」にチェックをつけて指定してエクスポートを実行すると,""なしのCSVファイルが取得可能です。

                 

                ※ブラウザ上で表示が崩れてたらすみません。。。 

                • 5. Re: CSVエクスポートについて
                  e_nagata
                    

                  ああ何か :o(半角)とかが顔になってる。。。

                   

                  <追記>

                  フォーラムのプロファイルの環境設定で,エモーティコン表示をなしにしたらOKでした。 

                  にneyoにより編集されたメッセージ
                  • 6. Re: CSVエクスポートについて
                    tella
                      

                    Hiroさん、neyoさん

                    ご返答ありがとうございました。

                    XMLスタイルシートにエクスポートをするなんて方法があったんですね。

                     

                    これでなんとかなりそうです。

                     

                     

                    どうもありがとうございました! 

                    • 7. Re: CSVエクスポートについて
                      Hiro
                        

                      すでに解決済みですが、もう少し易しい方法をもう一つ提案。

                       

                      先ず、普通にCSVエクスポートします。(例: "A","B","C")

                      次に、これをTABインポートで再び呼び戻し、1フィールドに格納します。(例:「フィールドA」="A","B","C")

                      別途、計算フィールド [式=Substitute(フィールドA; "\""; "")] で「"」を除去。(例:「フィールドB」=A,B,C)

                      最後に、この「フィールドB」をTAB形式で再度エクスポートして完成です。

                      • 8. Re: CSVエクスポートについて
                        tella
                          

                        Hiroさん

                        ご返信ありがとうございました。

                        変換用のファイルを一つつくって、スクリプトで教えていただいた方法をやった方が

                        簡単かもしれないですね。

                        スタイルシートも作り始めてしまっているのでneyoさんの方法とあわせて使ってみたいと思います。

                         

                        neyoさん、Hiroさん長々とお付き合いいただきありがとうございました。 

                        にtellaにより編集されたメッセージ