• 締切済み

CSV出力のダブルクォーテーションについて

ウェブアプリからCSV出力を行いたいのですが 出力行の両端に「"」(ダブルクォーテーション)が一緒に出力されます。 このダブルクォーテーションを出力したくありません。どうすればいいでしょうか?ご教授お願いします。 ちなみに下記は自分で作った例です。また使用するクラスはCSV::Writer以外でもかまいません。 class hoge  def exprt   cntnt_type = "text/csv"   ##ファイル名称の設定   file_name = "hoge.csv"   ##CSVオブジェクトを生成し、データをセットしていく   CSV::Writer.generate(output = "") do |csv|     csv << ["hoge", "fuga"]   end   ##CSVファイルの出力   send_data(output, :type => cntnt_type, :filename => file_name) end

  • Ruby
  • 回答数1
  • ありがとう数11

みんなの回答

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

require "csv" CSV::Writer.generate(output="") do |csv| csv << ["hoge", "fuga"] end puts output 付きませんけど・・・?

hakatanosi
質問者

お礼

あれ、本当ですね 知らない間に直してました^^;;

関連するQ&A

  • ダブルクォーテーションつきでCSV出力したい

    今、PHPを勉強しています。 PHPでデータベースからとりだした配列を、CSVファイルに出力するサンプルプログラムをみつけました。 https://blog.supersonico.info/?p=869 このプログラムをそのまま実行すると、 CSVファイルに、 あああ,いいい,ううう,えええ かかか,ききき,くくく,けけけ と出力されます。 これを、ダブルクォーテーションつきで、 "あああ","いいい","ううう","えええ" "かかか","ききき","くくく","けけけ" と出力するにはどうすればいいのでしょうか? ***************************************** $csvFileName = '/tmp/' . time() . rand() . '.csv'; $res = fopen($csvFileName, 'w'); if ($res === FALSE) { throw new Exception('ファイルの書き込みに失敗しました。'); } $dataList = array(        //↓ここにダブルクォーテーションで囲ってもうまくいかない。↓ array('あああ','いいい','ううう','えええ'), array('かかか,'ききき','くくく','けけけ'), ); foreach($dataList as $dataInfo) { mb_convert_variables('SJIS', 'UTF-8', $dataInfo); fputcsv($res, $dataInfo); } fclose($res);

    • ベストアンサー
    • PHP
  • ダブルコーテーション付きでCSV出力

    ACCESSでcsvを出力するように作りたいと思っています。 フォームで画面を設けボタンを押すとテーブルのデータをcsvとして出す仕組みです。 ボタン押下で以下のメソッドがよばれてcsvが出力されるようにしました。 DoCmd.TransferText acExportDelim, "Q_基本情報 エクスポート定義", "Q_基本情報CSV", scsvfileNm, True csvは出力されたのですが、テーブルカラムがnullの場合、以下のように出力されてしまいます。 ^^^^部分が"(ダブルコーテーション)が付きません。 "2",,"会社",,,,"0" ^^^^ ^^^^^^ 以下のようにnullでも""が付いて出されるようにしたいのですが、 TransferTextメソッドでは無理なのでしょうか "2","","会社","","","","0" どなたか詳しい方教えてください。お願い致します OS、アクセスのバージョンは以下のようになっています。 OS:windowsXP ACCESS2003

  • CSVのダブルコーテーションを取りたい

    CSVファイルをDBに更新をかけたくてフィールドに分解したのですが、フィールドの中身を見るとダブルコーテーションで囲まれていました。 "123" "ABCD" このダブルコーテーションをとりたいのですがやり方がわかりません。 StrCnvFrom = ObjTS.ReadLine StrCnvTo = Replace(StrCnvFrom, """, "") Replaceを使って変えようとしましたが、エラーが出てできませんでした。 よろしくお願いします。

  • EXCEL→CSV保存時のダブルクォーテーションについて

    下記のようにEXCELマクロにてEXCELファイルをCSVファイルに保存しようとしています。 NewBook.SaveAs Filename:="test.csv", FileFormat:=xlCSV, CreateBackup:=False このとき、セル値にダブルクォーテーションが含まれていると、出力CSVファイルの値がダブルクォーテーションで囲まれてしまいます。 ●ダブルクォーテーションが含まれていない場合 セル値→A列:ABC     B列:DEF CSVファイル→ABC,DEF ●ダブルクォーテーションが含まれている場合 セル値→A列:A"C     B列:DEF CSVファイル→"A"C",DEF 後者の場合もダブルクォーテーションで囲まれないようにするにはどうすればよいでしょうか。

  • CSVデータの"(ダブルクォーテーション)をとりたい!

    CSVデータの、"(ダブルクォーテーション)を自動でなくしたいのですが、 なにか良い方法がありましたら教えてください。 "ABC"→ABCとしたいです。 よろしくお願いします。

  • CSVファイルからダブルクォーテーションを削除したい。VBS使用で。

    CSVファイルからダブルクォーテーションを削除したい。VBS使用で。 CSVファイルのダブルクォーテーションを外す方法が Wendy02さん回答の http://oshiete1.goo.ne.jp/qa3016163.html (タブ区切りデータからダブルコーテーションを外したい) を使用してみました。 〔使用前〕 "1","00030123","00000000000000000000","00000000000000000019","4220120","42201","","1" 〔使用後〕 1,00030123,00000000000000000000,00000000000000000019,4220120,42101,",1" 使用後、ダブルクォーテーションで囲まれていない項目があると、 ダブルクォーテーションが残ってしまいます。 .Pattern ="""([^""]+)""" の部分を変更すれば、良いと思うのですが教えていただけないでしょうか?

  • csvデータ ダブルクォーテーションを追加したいんです

    csvデータに項目囲み文字がダブルクォーテーションを追加したいのですがどなたかやり方教えて下さい。宜しくお願いします。

  • PHP CSV 出力

    失礼します。 現在PHPで指定したパスに置いてあるCSVを出力したいのですが、 CSVは出力できているのですが、HTMLが先頭に入ってしまいます。 htmlファイルに設置したボタンに対して phpファイルで処理をしています。 どこかおかしい部分があればご教授頂きたいです。 HTMLファイル <?php $self = $_SERVER["SCRIPT_NAME"]; ?> <form method='POST' action='<?php $self ?>'> <input type='submit' value='CSV出力' name='get_csv'> </form> PHPファイル function This_Month(){ $filepath = 'hoge.csv'; //ダウンロードしたいファイルパス $filename = 'test.csv'; //ダウンロードした際のファイル名 if(!file_exists($filepath)){ die("Error:File(".$filepath.") does not exist"); } //オープンできるか確認 if(!($fp = fopen($filepath,"r"))) { die("Error:Cannot open the file(".$filepath.")"); } fclose($fp); //ファイルサイズの確認 if(($content_length = filesize($filepath)) == 0){ die("Error:File size is 0.(".$filepath.")"); } //ファイルの処理方法 header('Content-Disposition: attachement; filename="'.$filename.'"'); //ファイルタイプ指定 header('Content-Type: application/octet-stream'); header('Content-Transfer-Encoding:binary'); //ファイルサイズ header('Content-Length: '.filesize($filepath)); mb_convert_encoding($filepath,'utf-8','shift-jis'); readfile($filepath); exit(); } //ボタンに合わせて条件を変えていく if(isset($_POST["get_csv"])){ //ユーザーから来たデータをエスケープする $csv_output = htmlspecialchars($_POST["get_csv"], ENT_QUOTES, "UTF-8"); switch ($csv_output) { case "CSV出力": ”This_Month();  break; default: echo "エラー"; exit; } }

    • ベストアンサー
    • PHP
  • Excel2007でのCSV保存 ダブルクオーテーション

    CSVファイルの加工について 「ダブルクオーテーション」をつけたままの保存を希望しています。 ,"a","s","d"のように""で区切られたデータ(CSV)を エクセルで開いて編集保存すると 通常では ,a,s,d,のデータになってしまいます。 Excel2000では""のついたデータのままで保存できたようなのですが Excel2007でそれを可能にする方法はないのでしょうか? マクロでも構いません。 よろしくお願いいたします。

  • EXCELにてダブルコーテーションの区切りを用いて保存したい。

    DB作成のアルバイトをしているものです。 CSVファイルを保存するときに、ダブルコーテーションで保存されずに困っています。 もともとダブルコーテーションで区切られたCSVファイルなのですが、保存するとダブルコーテーションが消えてしまいます。 どうしたらよいのでしょうか? 教えていただければと思います。 よろしくお願いします。

専門家に質問してみよう