これは、ADO を使用して (i) Excel ファイルを読み取り (ii) CSV ファイルに書き込む小さな vbscript です。
option explicit
' Reading Excel Files:
' http://support.microsoft.com/kb/257819
dim CONNECTION1
set CONNECTION1 = WScript.CreateObject("ADODB.CONNECTION")
CONNECTION1.Open "Provider=MICROSOFT.JET.OLEDB.4.0;Data Source=C:\Users\Salman\Desktop\input.xls;Extended Properties=""Excel 8.0;HDR=Yes;"""
dim RECORDSET1
set RECORDSET1 = WScript.CreateObject("ADODB.RECORDSET")
RECORDSET1.open "SELECT * FROM [Sheet1$]", CONNECTION1, 3, 1
' Notes:
' CharacterSet 65001 is UTF-8
' add/remove columns and change datatype to match you excel file
dim CONNECTION2
set CONNECTION2 = WScript.CreateObject("ADODB.CONNECTION")
CONNECTION2.Open "Provider=MICROSOFT.JET.OLEDB.4.0;Data Source=C:\Users\Salman\Desktop\;Extended Properties=""text;HDR=Yes;FMT=Delimited;CharacterSet=65001;"""
CONNECTION2.Execute "CREATE TABLE [output.csv] ([English] VARCHAR(200), [Swedish] VARCHAR(200), [Russian] VARCHAR(200), [Chinese Simplified] VARCHAR(200))"
dim RECORDSET2
set RECORDSET2 = WScript.CreateObject("ADODB.RECORDSET")
RECORDSET2.Open "SELECT * FROM [output.csv]", CONNECTION2, 2, 2
do until RECORDSET1.EOF
RECORDSET2.AddNew
dim i
for i = 0 to RECORDSET1.Fields.Count - 1
WScript.Echo RECORDSET1.Fields(i).Value
RECORDSET2.Fields(i).Value = RECORDSET1.Fields(i).Value
next
RECORDSET2.Update
RECORDSET1.MoveNext
loop
Excel ファイルの内容の例 (Excel 2003):
English Swedish Russian Chinese Simplified
this should work Detta bör fungera это должно работать 这应该工作
this should work Detta bör fungera это должно работать 这应该工作
this should work Detta bör fungera это должно работать 这应该工作
this should work Detta bör fungera это должно работать 这应该工作
CSV ファイルの内容の例 (BOM なしの UTF-8):
"English","Swedish","Russian","Chinese Simplified"
"this should work","Detta bör fungera","это должно работать","这应该工作"
"this should work","Detta bör fungera","это должно работать","这应该工作"
"this should work","Detta bör fungera","это должно работать","这应该工作"
"this should work","Detta bör fungera","это должно работать","这应该工作"
cscript を使用して、コマンド ラインから次のスクリプトを実行します。
C:\>cscript export.vbs
注: 64 ビット Windows では、次の ADO エラーが発生する場合があります。
ADODB.Connection: プロバイダーが見つかりません。正しくインストールされていない可能性があります。(エラーコード 0x800A0E7A)
この問題の回避策は、スクリプトを 32 ビット モードで実行することです。これを行うには、[実行] ダイアログに次のコマンドを入力して 32 ビット コマンド プロンプトを起動します。
%WINDIR%\SysWOW64\cmd.exe
このコマンド プロンプトから cscript コマンドを実行します。