ショッピングカート WebCart 2.31
http://www.cgis.biz/
と言うフリーのPHPスクリプトを試しているのですが、商品一覧データをcsv形式でダウンロード出来き、アップロード出来る機能があります。
ダウンロードしたcsvデータをExcel2003で開き、そのまま上書き保存してアップロードすると意図しない表示となります。
ダウンロードしたデータを何もせずアップロードすると正常表示となります。
ダウンロードしたcsvデータをテキストエディタで開くとカンマで区切られたデータが全て「"」で括られていて文字列として扱われていました。
Excel2003で開くときに各データにダブルクォーテーションで括られた形式に出来ないものでしょうか。
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

Excel2003で開くとき、CSVファイルを直接ひらくのではなく、一旦エクセルを立ち上げ、メニューの「データ」、「外部データの取り込み」、「テキストファイルのインポート」を指示すると、ダイアログが開くので、「ファイルの種類」を「テキストファイル(*.txt)」から「すべてのファイル(*.*)」に変更します。


ここに当該CSVファイルが現れたらインポートし、ウィザードに従い、「カンマやタブなど区切り文字うんぬん」にチェックして次へ。
区切り文字にカンマをチェックして「文字の引用符」を「なし」にして次へ。
    • good
    • 0

要は、Excel で作成したCSVの各データをダブルクォーテーションで括られた形式にしたいということですね。



それなら、[参考URL]に示した質問に対して Wendy02さんが ANo.5 で提示されたツール「CSVを加工するWSHプログラム」がとても便利で、私はしょっちゅうお世話になっています。→ Wendy02さんに感謝!

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=2442823
    • good
    • 0

まず、Excelで開くファイル名を *.csv から、*.txt に改名します。



(※ *.csv のままでは、無条件で csvファイルと認識して、"" を文字列の引用符として捉え、読み込む際に取り除いてしまいます。)

次に、ファイル(F) ==> 開く(O) の操作をして、開くファイル( *.txt )を選択します。

 この時、テキストファイル ウィザードが起動します。
  ・ 1/3 では、カンマやタブなどの区切り文字によって・・・ を選択
  ・ 2/3 では、"区切り文字" には カンマのみを選択し、 "文字の引用符" は、なし を選択。
  ・ 3/3 では、なにも設定を変更せずに、完了 ボタンをクリック

 以上の操作をすれば良いと思います。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qダブルクォーテーション囲いカンマ区切り形式で保存したい

お願いします。
エクセル2000使用してます。
【質問1】
"名前A","ナマエA","09011111111","aaa@docomo.ne.jp"
"名前B","ナマエB","09011111112","bbb@docomo.ne.jp"
"名前C","ナマエC","09011111113","ccc@docomo.ne.jp"
このように、ワークシートをダブルクォーテーション囲いカンマ区切り形式で保存するにはどうすればよいでしょうか。

【質問2】
上記のデータを読み込むときに電話番号部分の先頭の0が取れてしまうの防ぐために、ファイルの拡張子をtxtにリネームしておいて、エクセルから開くときにウィザードで列のデータ形式を文字列と指定しています。もっと簡単な方法が教えてください。(頻繁にファイルを開くので。。。)

Aベストアンサー

1.マクロを使わないと出来ません。
  こんな感じです。
 Open "CsvFileName.csv" for Output as #1
 For Row = 1 to 10
  For Col = 1 to 10
   Select Case Col
    Case 1
     Print #1 Chr$(&H22) & Cell(Row, Col).Text & Chr$(&H22);
    Case 2
     Print #1 Chr$(&H22) & Cell(Row, Col).Text & Chr$(&H22);
    Case Else
     Print #1 Cell(Row, Col).Text;
   End Select
   If Col = 10 Then
    Print #1, ""
   Else
    Print #1, ",";
   End If
  Next Col
 Next Row
 Close #1

2.マクロを使えば自動化できます。
「データ」メニューの「外部データの取り込み」で「テキストファイル」を指定してCSVファイルを選択します。
テキスト取り込みウィザードで列のデータ形式を文字列と指定します。
上記の操作を「マクロの記録」でマクロにしてから
実用になるようにマクロを修正します。

1.マクロを使わないと出来ません。
  こんな感じです。
 Open "CsvFileName.csv" for Output as #1
 For Row = 1 to 10
  For Col = 1 to 10
   Select Case Col
    Case 1
     Print #1 Chr$(&H22) & Cell(Row, Col).Text & Chr$(&H22);
    Case 2
     Print #1 Chr$(&H22) & Cell(Row, Col).Text & Chr$(&H22);
    Case Else
     Print #1 Cell(Row, Col).Text;
   End Select
   If Col = 10 Then
    Print #1, ""
   Else
   ...続きを読む

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

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

Aベストアンサー

この変換はエディタでやりました。
正規表現ができる秀丸のようなエディタなら簡単に
できますよ。

置換前   置換後

 ,  →  ","

 \n →  "\n"

と2回変換をかければ一発でした。

秀丸はこの変換速度が他のエディタに比べて高速
ですので(ワードパッドやメモ帳の数百倍の早さ)
お勧めです。

Qテキストファイルの変換・整形について

ときわや
TEL 076-521-0139
〒939-8201 山形県富山市棟園町3丁目7-17 
米屋
米蔵屋
TEL 012-854-0139
〒551-2312 秋田県高時市川辺町7丁目1 -12
米屋
---------------------------------------------
1行目から4行目までを一列。5行目から8行目までを一列に出来るソフトなどご存知あれば教えていただけませんか?また「"」「,」などを間に入れたいです。

"ときわや","076-424-0139","939-8201","山形県富山市棟園町3丁目7-17","米屋"
"米蔵屋","012-854-0139","551-2312","秋田県高時市川辺町7丁目1 -1","米屋"

↑出力結果をこんな感じにしたいのです。
処理するテキストが大量に続き困ってます。

複数のソフトの組み合わせでも結構です。
ヒントお願いいたします。

Aベストアンサー

#6 のakiracoolさんへ
Wendy02と申します。

こちらが触れたことについて、文章的に何か、不快感を表されたようにも読み取れます。私の書いた内容について不足があり、もし誤解されていたらすみませんです。

文面の中で、アクセス(Ms-Access)について触れていましたので、一般的には、Accessをお持ちの方はそれほど多くはありません。その部分について、Windows のみで可能だと書いたわけです。

つまり、#5の私の内容は、「" "(クォーテーション)」をつける作業について触れたものです。これについては、私には、Excelのワークシートで、明確な解決方法が見出せませんでした。データベース系のCSVでは、「" "(クォーテーション)」が必要になるものもありますが、Excelは、インポートが主ですから、出力にはあまり柔軟な対応はしないように思います。

しかし、もし、VBAの処理なら、最初からすればよいので、途中から、VBAの解決方法というのもおかしいです。VBAがお分かりにならない方のために、VBAも使わない、Windowsだけの(WSH)VBScript の処理を考えてみました。(程度の差はあれ、プログラムには違いありませんし、最初から、WSHで作るのもやぶさかではありませんが、やはりVBAのほうが表現力はすぐれています。)

また、一方で、Excelの出力には、スペース区切りの prn 出力という方法があります。書式で、「!"@!"」という方法でワークシート上の文字列を加工します。しかし、固定長なので、空白が入ってしまいます。また、「,(カンマ)」がありません。

そこで、空白を取り除き、「.(カンマ)」に換えなくてはなりませんので、テキストエディタなどが必要になってしまいます。

それでは、最初から、正規表現のあるテキスト・エディタやテキスト・ストリーム・エディタで行ったほうが早いことにもなってしまいます。この部分で、VBAの分からない方に、ワークシートの操作のみで解決できれば、それに越したことはないように思いました。

#6 のakiracoolさんへ
Wendy02と申します。

こちらが触れたことについて、文章的に何か、不快感を表されたようにも読み取れます。私の書いた内容について不足があり、もし誤解されていたらすみませんです。

文面の中で、アクセス(Ms-Access)について触れていましたので、一般的には、Accessをお持ちの方はそれほど多くはありません。その部分について、Windows のみで可能だと書いたわけです。

つまり、#5の私の内容は、「" "(クォーテーション)」をつける作業について触れたものです。これについては...続きを読む

Q文字列として"(ダブルコーテーション)を表示させる方法

こんにちは。文字列として、ダブルコーテーションを表示させるには、どうすればよいのか教えてください。m(__)m


例えば、
<font size="2">あいうえお</font>

というタグの「あいうえお」の部分が、セルA1にあった場合、

="<font size="2">"&A1&"</font>"という表示にしたいのです。

"2"のダブルコーテーションも文字列として表示させるには、どうすればよろしいのでしょうか。

教えてください。よろしくお願い致します。

Aベストアンサー

こんにちは~

表示形式は 「標準」 のままで、
ダブルコーテーションを、ダブルコーテーションで囲んでください。

""2""

="<font size=""2"">"&A1&"</font>"

としてみてください。

Qダブルクォーテーションカンマ区切りのcsv形式ファイルへの変換方法

Excelファイルをダブルクォーテーションカンマ区切りのcsv形式ファイルへ変換する方法を教えてください。

"●●","○"○,"◆◆"

Aベストアンサー

他に、VBAでファイル出力する方法もあります。
「"」は Chr(34) で付加します。
頻度が少なければ、#2が良いと思います。
では!

Q【VBA】ExcelマクロでCSVファイルに保存したデータが""で囲まれてしまう

添付図のような、Excel2003で作成した表内のデータを
CSVで保存するマクロを作成したのですが、
図のように、CSVファイルに「""」で値が囲まれた状態で、
保存されてしまいます。

下記にマクロを記載しますので、
どうすれば文字列が「""」で囲まれずに、
カンマ区切りだけのデータで出力されるのか、
ご存知の方おられましたら、ご教示お願い致します。

Sub csv保存()
Dim フォルダ名 As String
Dim パス名 As String
Dim ファイル名 As String
Dim データ As Variant
Dim 行数 As Long, 列数 As Integer
Dim i As Integer, j As Long, k As Long

ファイル名 = "test.csv"
フォルダ名 = "csv"
パス名 = ActiveWorkbook.Path & "\" & _
フォルダ名

'csvフォルダが存在しなければ作成する
If Dir(パス名, vbDirectory) = "" Then
MkDir パス名
End If
ChDir パス名

Open ファイル名 For Output As #1

For i = 1 To Worksheets.Count
Worksheets(i).Activate
Worksheets(i).Cells(1, 1).Select
ActiveCell.CurrentRegion.Select
行数 = Selection.Rows.Count
列数 = Selection.Columns.Count

For j = 1 To 行数
For k = 1 To 列数 - 1
データ = Selection.Cells(j, k) _
.Value
Write #1, データ;
Next k
Write #1, Selection.Cells(j, 列数) _
.Value
Next j
Next i
Close #1
End Sub

添付図のような、Excel2003で作成した表内のデータを
CSVで保存するマクロを作成したのですが、
図のように、CSVファイルに「""」で値が囲まれた状態で、
保存されてしまいます。

下記にマクロを記載しますので、
どうすれば文字列が「""」で囲まれずに、
カンマ区切りだけのデータで出力されるのか、
ご存知の方おられましたら、ご教示お願い致します。

Sub csv保存()
Dim フォルダ名 As String
Dim パス名 As String
Dim ファイル名 As String
Dim データ As Variant
Dim ...続きを読む

Aベストアンサー

Write # は文字列を""で囲んで出力する仕様になっています。
そのまま出力したければ、Print #を利用すればよろしいかと。
ただし、Printの場合は区切り文字(カンマ)を自動で出力してくれませんので、併せて出力する必要があります。

For j = 1 To 行数
  For k = 1 To 列数 - 1
    データ = Selection.Cells(j, k) .Value
    Print #1, データ; ",";
  Next k
  Print #1, Selection.Cells(j, 列数).Value
Next j

なお、いらぬおせっかいですが、ドライブが複数ある環境下だと、
 ChDir パス名
だけでは必ずしもcvsフォルダ内に、ファイルが作成されるとは限りません。
 Open パス名 & "\" & ファイル名 For Output As #1
のように、フルパスで指定しておいた方が確実かと…

QExcelで""で囲む方法

Excelでセルの値をダブルクォーテーションで囲む方法を教えてください.
例えば,B3セルの値をA3セルでダブルクォーテーションで囲みながら表示したいと思っています.

Aベストアンサー

A1
に asd とあるとき
=""""&A1&""""

B1は "asd"
となりました。
123 の時は
"123"

Qカンマ区切りのCSVファイルから""を削除したい

初めて質問いたします

以下のような形式のCSVファイルがあります
例)
品名,数量,単価,金額
"りんご",1,150,150
"バナナ",10,200,2000
"メロン","1,000","2,000","2,000,000"

上記のように、品名にはダブルクォーテションがつき、
数量、単価、金額については桁区切りのカンマが発生する場合、ダブルクォーテーションで囲まれています

上記のようなデータを
りんご,1,150,150
バナナ,10,200,2000
メロン,1000,2000,2000000
のように別ファイルへ出力するにはどのようにすればよいでしょうか?

プログラムでの処理で、WSHを使ったものを教えていただけますと、幸いです
よろしくお願いいたします

Aベストアンサー

もう仕事は終わってしまったかもしれませんが、(^^ゞ
VBS で作ってみました。
対象CSVファイルのあるフォルダに保存して実行してみてください。
_NewFilesフォルダに保存されます。
※対象外のCSVファイルが有っても処理してしまいます

Dim oSh
Dim oFs
Dim BaseFolder
Dim newFolder
Dim f

Set oSh = CreateObject("Wscript.Shell")
Set oFs = CreateObject("Scripting.FilesystemObject")
Set BaseFolder = oFs.getFolder(oSh.currentDirectory)

newFolder = BaseFolder.Path & "\" & "_NewFiles"

If oFs.folderExists(newFolder) = False Then
oFs.createFolder (newFolder)
End If

For Each f In BaseFolder.Files
If oFs.GetExtensionName(f) = "csv" Then
Call changeIt(f.Path, newFolder)
End If
Next

MsgBox newFolder & " フォルダ内を検証"


Sub changeIt(orgFname, trgFolder)
Dim oFs
Dim orgF
Dim newF
Dim newFname
Dim buF
Dim oReg

Dim Mcol
Dim M
Dim M1, M2
Const forReading = 1
Const forWriting = 2

Set oFs = CreateObject("Scripting.fileSystemObject")
Set oReg = CreateObject("VBScript.RegExp")
Set orgF = oFs.getFile(orgFname).openAsTextStream(forReading)

newFname = trgFolder & "\" & oFs.getBaseName(orgFname) & "_New.csv"
oFs.CreateTextFile (newFname)
Set newF = oFs.getFile(newFname).openAsTextStream(forWriting)

With oReg
.Pattern = """.*?"""
.IgnoreCase = False
.Global = True
End With

Do Until orgF.atendofstream
buF = orgF.readline
Set Mcol = oReg.Execute(buF)

For Each M In Mcol
M1 = Replace(M.Value, ",", "")
buF = Replace(buF, M.Value, M1)
M2 = Replace(M1, Chr(34), "")
buF = Replace(buF, M1, M2)
Next

newF.WriteLine buF
Loop

orgF.Close: newF.Close
Set Mcol = Nothing
Set oReg = Nothing

End Sub

もう仕事は終わってしまったかもしれませんが、(^^ゞ
VBS で作ってみました。
対象CSVファイルのあるフォルダに保存して実行してみてください。
_NewFilesフォルダに保存されます。
※対象外のCSVファイルが有っても処理してしまいます

Dim oSh
Dim oFs
Dim BaseFolder
Dim newFolder
Dim f

Set oSh = CreateObject("Wscript.Shell")
Set oFs = CreateObject("Scripting.FilesystemObject")
Set BaseFolder = oFs.getFolder(oSh.currentDirectory)

newFolder = Bas...続きを読む

QCSVファイルの中で、「 , 」カンマを使いたい

「 , 」で区切られたCSVファイルの中で、「 , 」カンマを使いたいのですが、可能でしょうか?

具体的には「これは1,500円でした。」というように、CSVファイルに収められた文章内で出てくる半角の数字(お金)の区切りに使いたいのです。
全角では代用したくないのですが、CSVファイルでデータを受け渡しする際に、困っています。

例えば、特殊文字などで対応可能でしょうか?

Aベストアンサー

受け渡しに使うと言うことは相手方のアプリケーションのことも考えなければいけないのですが・・・とりあえず対応が簡単そうな方法を。

1.各セルを""で囲む。(もちろんデータにダブルクォートがある場合はカンマと同様に困ります。
2.カンマで区切らずにタブで区切る。(比較的使われない文字ですが、やはりデータ中にタブがあるとカンマと同様です)

難しいけれど完璧に対応するためには、データ中の区切り文字は特殊な文字列に変更し、受け取り側のアプリケーションではその特殊な文字列をデータ中の区切り文字として扱うという方法が使われます。
例えば、データ中のカンマは\,にするとか。

データ作成側、受け取り側でそれぞれどこまで対応できるのか分かるともっと簡単かつ具体的な方法を回答できるかも知れません。

QCSV形式での保存時に”文字列引用符”にしたい(エクセル)

データのアップデートに、CSV形式でのファイルから一括アップロードができるのですが、データ内容に条件があり、文字列についてはダブルコーテーションで括ることになっています。

”千代田区日本橋”,”1丁目1-1”,

といった感じなのですが、エクセルから保存する時に一括で「”」が入る方法はあるでしょうか?
普通にCSVで保存すると、入りません。

Aベストアンサー

こんにちは。

簡単なコードですみませんが、こんなもので出来るはずです。現在のコードでは、すべて、文字列として、「" "」クォーテーションで括ってしまいます。数字との区別はありません。

一応、標準モジュールに登録してください。

Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。
次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、再び、Alt + F11 で、画面を閉じます。

後は、Alt + F8 で、CSVEport_W_Qt を実行してみてください。(プロシージャーの名前は任意ですから、和名を付け直しても結構です。)

'--------------------------------------------
Option Explicit
Sub CSVExport_W_Qt()
  Dim Fname As String
  Dim usedRng As Range
  Dim i As Long, j As Long
  Dim buf As String
  Dim Fno As Integer
  Const Qt As String = """"
  Fname = Application.InputBox("出力名を入力してください。", Type:=2)
  If VarType(Fname) = vbBoolean Or Fname = "" Then Exit Sub
  If InStr(Fname, ".csv") = 0 Then Fname = Fname & ".csv"
  Fno = FreeFile()
  Open Fname For Output As #Fno
  With ActiveSheet
   Set usedRng = .UsedRange
   On Error Resume Next
   For i = 1 To usedRng.Rows.Count
     For j = 1 To usedRng.Columns.Count
      If Not IsEmpty(usedRng.Cells(i, j)) Then
        buf = buf & "," & Qt & usedRng.Cells(i, j).Value & Qt
        Else
        buf = buf & ","
      End If
     Next j
     Print #Fno, Mid$(buf, 2)
     buf = ""
   Next i
   On Error GoTo 0
  End With
  Close #Fno
  Beep
End Sub
'--------------------------------------------

こんにちは。

簡単なコードですみませんが、こんなもので出来るはずです。現在のコードでは、すべて、文字列として、「" "」クォーテーションで括ってしまいます。数字との区別はありません。

一応、標準モジュールに登録してください。

Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。
次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、再び、Alt + F11 で、画面を閉じます。

後は、Alt ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報