私はCSVファイルをソースコードとして扱いたいと思っています。基本的には、私はcsv行をとり、すべての文字列パラメータを持つ関数を呼び出したかのように使用します。CSVのすべての要素を二重引用符で囲むツールはありますか?
テキストにカンマがある場合、個々の要素は二重引用符で囲まれています。
csv行のすべての要素を二重引用符で簡単に追加する方法はありますか。
元のドキュメントはExcelファイルであるため、Excelのすべての機能は問題ありませんが、他の簡単なツールも歓迎します。
私はCSVファイルをソースコードとして扱いたいと思っています。基本的には、私はcsv行をとり、すべての文字列パラメータを持つ関数を呼び出したかのように使用します。CSVのすべての要素を二重引用符で囲むツールはありますか?
テキストにカンマがある場合、個々の要素は二重引用符で囲まれています。
csv行のすべての要素を二重引用符で簡単に追加する方法はありますか。
元のドキュメントはExcelファイルであるため、Excelのすべての機能は問題ありませんが、他の簡単なツールも歓迎します。
Excel CONCATENATE()関数を見てみましょう。コンマで区切られた文字列または引用されたリテラルのリストを取ります。
e.g. CONCATENATE("""", A1, """") etc.
ここで、A1は自分の列の1つです。あなたがやりたいだろうエクセルにこのマクロを使用している場合
私は頻繁に一回限りのSQL挿入のためにこれを行うので、あなたは、二重引用符を使用する場合は、私は、SQLのINSERT文
楽しみのために、次のPythonスクリプトを試してみてください。
CSVの文字列に引用符を追加しています。
これは本当に簡単な方法です - あなたのためにうまくいかないコーナーケース(引用符とコンマが埋め込まれた文字列)が見つかる可能性があります。修理する!
(これはあまりコードの行に書かれていないことがわかりました。
import sys
import re
def addQuotes(str):
matches = re.match('^".*"$', str)
if matches == None:
return '"' + str + '"'
return str
# Iterate over standard input. NOTE - this isn't line-buffered, don't try using
# this script interactively...
for line in sys.stdin:
# Remove trailing linefeed.
line = line.strip()
# Split the line into parts separated by commas.
parts = line.split(',')
# Add quotes to each part that doesn't have quotes already.
newParts = map(addQuotes, parts)
# Concatenate the parts back to a single line.
concatParts = ','.join(newParts)
# And print it.
print concatParts
パイプCSVのようなもの使用して、これにファイル - あなたが別のフィールドセパレータを使用するように出力を変更することはでき
python QuoteCSV.py < input.csv
を?理想的には、フィールド値で決して使用されないものを使用することができます - それでは簡単な検索&の問題を置き換えます。
もう1つの方法は、CSVをSQLテーブルにインポートしてから、すべてのフィールドを引用符で囲んでダンプすることです。
を書く:
Option Explicit
Public Sub OutputQuotedCSV()
Const QSTR As String = """"
Dim myRecord As Range
Dim myField As Range
Dim vFilename As Variant
Dim nFileNum As Long
Dim sOut As String
'Get a filename to save as
vFilename = Application.GetSaveAsFilename(filefilter:="Microsoft CSV files,*.csv", _
Title:="Save as CSV with fields in double quotes")
If vFilename = False Then Exit Sub 'User chose Cancel
nFileNum = FreeFile
Open vFilename For Output As #nFileNum
For Each myRecord In Range("A1:A" & _
Range("A" & Rows.Count).End(xlUp).Row)
With myRecord
For Each myField In Range(.Cells(1), _
Cells(.Row, 256).End(xlToLeft))
sOut = sOut & "," & QSTR & _
Replace(myField.Text, QSTR, QSTR & QSTR) & QSTR
Next myField
Print #nFileNum, Mid(sOut, 2)
sOut = Empty
End With
Next myRecord
Close #nFileNum
End Sub
マクロ内のリンクは元のソースを参照します
ソースコードはどの言語ですか?あなたがコードを生成しているように思えますが、コードがCSVを読み込むのが簡単かもしれません。あなたが使用できるライブラリに依存します。 – Mark