少し前に紹介したDynamoDBの操作ツールであるdynein。実際に少し使い始めています。
dynein
https://github.com/awslabs/dynein
取り込むデータはExcelで作成して、それを元にCSVファイルを作成、dyコマンドで取り込もうとしたのですが、、、CSVファイルの取り込みがイマイチでした。。。
そもそも、カラムとしてリスト形式の値を持つものもあるので、CSV形式だとちょっと無理があったかもしれませんが、それにしてもCSV形式の取り込みとしては少し癖がありそうでした。
というわけでJSON形式での取り込みに変更しました。
エクセル上のデータをJSONへ吐き出す方法に関しては、VBAで書いたのですが、VBAでUTF-8形式のファイルを作成するのって結構面倒なんですね。。。
Sub SaveFileUTF8WithoutBOM(filePath As String, dataString As String)
Dim adodb1 As Object
Dim adodb2 As Object
Set adodb1 = CreateObject("ADODB.Stream")
Set adodb2 = CreateObject("ADODB.Stream")
With adodb1
.Charset = "UTF-8"
.Open
.WriteText dataString
.Position = 3
With adodb2
.Type = 1
.Open
adodb1.CopyTo adodb2
.SaveToFile filePath, 2
.Close
End With
.Close
End With
End Sub
一度、ファイルストリームを開いてから、BOM分だけずらし、その内容をコピーするという、何というかバイナリ操作が入るような。。。
VBAもいまだにこういうことをしないとUTF-8を書けないのだろうか?という気になります。もうちょっと何とかならんのですかね。