我一直在挣扎了一段时间与Excel中的疑难问题有俄文字符在我的Excel文件(2003年版),我想将其保存到一个csv.But问题是,每当我这样做,而不是俄语字符我的变得??????。经过各种论坛后,我发现问题在于MS Excel。如何使用UTF-8编码将excel文件保存为csv?
所以现在我在想,如果我可以写VB脚本这将读取所需要的细胞中的琴弦,他们变相为UTF-8编码并将其存储在一个文本文件中。我在这里有两个问题:
我的解决方案是否可行?我不知道它是否可以完成?任何指针都会帮助完整。我通过网络拖网,找不到任何东西。
,就像我跟VB脚本完全为零,可一些身体帮我一个示例代码吗?
最重要的是,如果有人知道更好的方法,请让我知道。
感谢 斯潘基
我已经经历了萨尔曼的代码了,并试图在我的Excel文件(嵌入了)。我正在面对一些probs,并在网络搜索后对其进行了一些修改。修改后的代码如下:
Sub test()
'Modified lines
Dim CONNECTION1 As New ADODB.Connection
Set CONNECTION1 = New ADODB.Connection
'Set CONNECTION1 = WScript.CreateObject("ADODB.CONNECTION")
'Modified line
CONNECTION1.Open "Provider=MICROSOFT.JET.OLEDB.4.0;Data Source=c:\Documents and Settings\bht1kor \Desktop \test.xls;Extended Properties=""Excel 8.0;HDR=Yes;"""
Dim RECORDSET1 As New ADODB.Connection
Set RECORDSET1 = New ADODB.Connection
'commented the line
'WScript.CreateObject ("ADODB.RECORDSET")
RECORDSET1.Open CONNECTION1 ', 3, 1
Set rs1 = RECORDSET1.Execute("SELECT * FROM [Sheet1$]")
' Notes:
' CharacterSet 65001 is UTF-8
' add/remove columns and change datatype to match you excel file
Dim CONNECTION2 As New ADODB.Connection
Set CONNECTION2 = New ADODB.Connection
'commented the line
'Set CONNECTION2 = WScript.CreateObject("ADODB.CONNECTION")
CONNECTION2.Open "Provider=MICROSOFT.JET.OLEDB.4.0;Data Source=c:\Documents and Settings\bht1kor\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 As New ADODB.Connection
Set RECORDSET2 = New ADODB.Connection
'commented the line
'Set RECORDSET2 = WScript.CreateObject("ADODB.RECORDSET")
RECORDSET2.Open CONNECTION2, adOpenKeyset, adLockOptimistic
'Do Until RECORDSET1.EOF
RECORDSET2.AddNew
Dim i
For i = 0 To RECORDSET1.Fields.Count - 1
'comented the line
'WScript.Echo RECORDSET1.Fields(i).Value
RECORDSET2.Fields(i).Value = RECORDSET1.Fields(i).Value
Next
RECORDSET2.Update
RECORDSET1.MoveNext
Loop
End Sub
我在运行此代码时仍遇到问题。运行下面的线,而:
RECORDSET2.Open连接2,adOpenKeyset,ADLOCKOPTIMISTIC
它给一个运行时错误“无法启动application.The工作组文件丢失或完全由其他用户打开”。我几乎被这个难住了。有任何想法吗。对我来说,它看起来像probs与数据源。 注意: - 我没有安装MS访问。
相关:http://stackoverflow.com/questions/4221176/excel-to-csv-with-utf8-encoding – Tomalak
你真的想要一个VB脚本解决方案吗?如果excel save-as命令可以做到这一点,该怎么办? –
@Salman我很确定他的意思是VBA。另外,从另一个问题可以看出,“另存为”并不能解决问题。 – Tomalak