Excel到JSON(带VBA)土耳其字符问题
我正在使用VBA将Excel表转换为Json。Excel到JSON(带VBA)土耳其字符问题,json,excel,character,turkish,Json,Excel,Character,Turkish,我正在使用VBA将Excel表转换为Json。 但是,当我查看输出Json文件时,土耳其语字符看起来并不平滑 比如说, in Excel table, "HAYRETTIN YILMAZ" in Json, HAYRETTÝN YILMAZ in Excel table, "HÜSEYİN DURAK" in Json, HÜSEYÝN DURAK 我怎样才能修好它 您可以在下面找到我的VBA代码: Sub deneme() savename = "deneme.js" Dim
但是,当我查看输出Json文件时,土耳其语字符看起来并不平滑 比如说,
in Excel table, "HAYRETTIN YILMAZ"
in Json, HAYRETTÝN YILMAZ
in Excel table, "HÜSEYİN DURAK"
in Json, HÜSEYÝN DURAK
我怎样才能修好它
您可以在下面找到我的VBA代码:
Sub deneme()
savename = "deneme.js"
Dim wkb As Workbook
Dim wks As Worksheet
Set wkb = ThisWorkbook
Set wks = wkb.Sheets(2)
lcolumn = wks.Cells(1, Columns.Count).End(xlToLeft).Column ' Var olan sütunun en sonu
lrow = wks.Cells(Rows.Count, "A").End(xlUp).Row ' Var olan satırın en sonu
Dim titles() As String
ReDim titles(lcolumn)
For i = 1 To lcolumn
titles(i) = wks.Cells(1, i)
Next i
wks.Columns(50).ClearContents
json = "var deneme = { " & vbCrLf
dq = """"
m = 1
For i = 2 To ActiveSheet.Range("a1048576").End(3).Row
If WorksheetFunction.CountIf(wks.Columns("a"), wks.Cells(i, 1)) = 1 Then
json = json & vbCrLf & dq & wks.Cells(i, 1) & dq & ": {" & vbCrLf
For k = 1 To lcolumn
cellvalue = wks.Cells(i, k)
json = json & dq & titles(k) & dq & ":" & dq & cellvalue & dq
If k <> lcolumn Then ' Son sütun değilse
json = json & "," & vbCrLf
ElseIf k = lcolumn Then
json = json & vbCrLf & "}," & vbCrLf
End If
Next k
'json = json & dq & wks.Cells(1, 1) & dq & ":" & dq & wks.Cells(i, 1) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 2) & dq & ":" & dq & wks.Cells(i, 2) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 3) & dq & ":" & dq & wks.Cells(i, 3) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 4) & dq & ":" & dq & wks.Cells(i, 4) & dq & vbCrLf & "}," & vbCrLf
Else
If wks.Cells(i, 50) = "" Then
For j = i To ActiveSheet.Range("a1048576").End(3).Row
If wks.Cells(j, 1) = wks.Cells(i, 1) Then
If j = i Then
json = json & dq & wks.Cells(i, 1) & dq & ": [{" & vbCrLf
For k = 1 To lcolumn
cellvalue = wks.Cells(i, k)
json = json & dq & titles(k) & dq & ":" & dq & cellvalue & dq
If k <> lcolumn Then ' Son sütun değilse
json = json & "," & vbCrLf
ElseIf k = lcolumn Then
json = json & vbCrLf & "},"
End If
Next k
'json = json & dq & wks.Cells(1, 1) & dq & ":" & dq & wks.Cells(j, 1) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 2) & dq & ":" & dq & wks.Cells(j, 2) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 3) & dq & ":" & dq & wks.Cells(j, 3) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 4) & dq & ":" & dq & wks.Cells(j, 4) & dq & vbCrLf & "},"
Else
json = json & vbCrLf & "{" & vbCrLf
For k = 1 To lcolumn
cellvalue = wks.Cells(i, k)
json = json & dq & titles(k) & dq & ":" & dq & cellvalue & dq
If k <> lcolumn Then ' Son sütun değilse
json = json & "," & vbCrLf
ElseIf k = lcolumn Then
json = json & vbCrLf & "},"
End If
Next k
'json = json & dq & wks.Cells(1, 1) & dq & ":" & dq & wks.Cells(j, 1) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 2) & dq & ":" & dq & wks.Cells(j, 2) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 3) & dq & ":" & dq & wks.Cells(j, 3) & dq & "," & vbCrLf
'json = json & dq & wks.Cells(1, 4) & dq & ":" & dq & wks.Cells(j, 4) & dq & vbCrLf & "},"
End If
wks.Cells(j, 50) = 1
End If
Next j
json = Left(json, Len(json) - 1) & "]," & vbCrLf
End If
End If
Next i
json = Left(json, Len(json) - 3) & vbCrLf & "}" & vbCrLf & "}"
myFile = "C:\Users\xxx\Desktop\" & savename
Open myFile For Output As #1
Print #1, json
Close #1
End Sub
Sub-deneme()
savename=“deneme.js”
将wkb设置为工作簿
将工作作为工作表
设置wkb=此工作簿
集合工作=wkb.工作表(2)
lcolumn=wks.Cells(1,Columns.Count)。End(xlToLeft)。Column'Var olan sütunun en sonu
lrow=wks.Cells(Rows.Count,“A”)。End(xlUp)。Row'Var olan satırın en sonu
将标题()设置为字符串
重拨标题(lcolumn)
对于i=1至lcolumn
标题(i)=工作单元(1,i)
接下来我
wks.Columns(50).ClearContents
json=“var deneme={”&vbCrLf
dq=“”“
m=1
对于i=2到ActiveSheet.Range(“a1048576”)。结束(3)。行
如果工作表function.CountIf(wks.Columns(“a”),wks.Cells(i,1))=1,则
json=json&vbCrLf&dq&wks.Cells(i,1)&dq&“:{”&vbCrLf
对于k=1至L柱
cellvalue=wks.Cells(i,k)
json=json&dq&titles(k)&dq&“:”&dq&cellvalue&dq
如果是k-lcolumn,那么他的儿子sütun değilse
json=json&“,”和vbCrLf
ElseIf k=lcolumn然后
json=json&vbCrLf&“},”&vbCrLf
如果结束
下一个k
'json=json&dq&wks.Cells(1,1)&dq&':“&dq&wks.Cells(i,1)&dq&',”&vbCrLf
'json=json&dq&wks.Cells(1,2)&dq&':“&dq&wks.Cells(i,2)&dq&',”&vbCrLf
'json=json&dq&wks.Cells(1,3)&dq&':“&dq&wks.Cells(i,3)&dq&',”&vbCrLf
'json=json&dq&wks.Cells(1,4)&dq&“:”&dq&wks.Cells(i,4)&dq&vbCrLf&“},&vbCrLf
其他的
如果wks.Cells(i,50)=“那么
对于j=i到ActiveSheet.Range(“a1048576”)。结束(3)。行
如果wks.Cells(j,1)=wks.Cells(i,1),则
如果j=i,那么
json=json&dq&wks.Cells(i,1)&dq&“:[{”&vbCrLf
对于k=1至L柱
cellvalue=wks.Cells(i,k)
json=json&dq&titles(k)&dq&“:”&dq&cellvalue&dq
如果是k-lcolumn,那么他的儿子sütun değilse
json=json&“,”和vbCrLf
ElseIf k=lcolumn然后
json=json&vbCrLf&“}”
如果结束
下一个k
'json=json&dq&wks.Cells(1,1)&dq&':“&dq&wks.Cells(j,1)&dq&',”&vbCrLf
'json=json&dq&wks.Cells(1,2)&dq&“:”&dq&wks.Cells(j,2)&dq&“,”&vbCrLf
'json=json&dq&wks.Cells(1,3)&dq&“:”&dq&wks.Cells(j,3)&dq&“,”&vbCrLf
'json=json&dq&wks.Cells(1,4)&dq&':“&dq&wks.Cells(j,4)&dq&vbCrLf&'”
其他的
json=json&vbCrLf&“{”&vbCrLf
对于k=1至L柱
cellvalue=wks.Cells(i,k)
json=json&dq&titles(k)&dq&“:”&dq&cellvalue&dq
如果是k-lcolumn,那么他的儿子sütun değilse
json=json&“,”和vbCrLf
ElseIf k=lcolumn然后
json=json&vbCrLf&“}”
如果结束
下一个k
'json=json&dq&wks.Cells(1,1)&dq&':“&dq&wks.Cells(j,1)&dq&',”&vbCrLf
'json=json&dq&wks.Cells(1,2)&dq&“:”&dq&wks.Cells(j,2)&dq&“,”&vbCrLf
'json=json&dq&wks.Cells(1,3)&dq&“:”&dq&wks.Cells(j,3)&dq&“,”&vbCrLf
'json=json&dq&wks.Cells(1,4)&dq&':“&dq&wks.Cells(j,4)&dq&vbCrLf&'”
如果结束
wks.Cells(j,50)=1
如果结束
下一个j
json=Left(json,Len(json)-1)和“],”和vbCrLf
如果结束
如果结束
接下来我
json=Left(json,Len(json)-3)&vbCrLf&“}”&vbCrLf&“}”
myFile=“C:\Users\xxx\Desktop\”&savename
打开myFile以作为#1输出
打印#1,json
关闭#1
端接头
@彼得,我不想使用JsonConverter,因为我们公司的政策。因此,我在上面编写了我的代码。当我将Excel代码用于Json时,“HAYRETTIN YILMAZ”似乎是“HAYRETTÝN YILMAZ” 此外,您的第3项已更改。“HÜSEYİN DURAK”->“H\u00DCSEY\u0130N DURAK”。JsonConverter也有同样的问题 我怎样才能修好它 谢谢。我使用运行了一个测试,并获得了以下结果。这和你得到的不同吗 生成以下JSON:
{
"Item1": "HAYRETTIN YILMAZ",
"Item2": "HAYRETT\u00DDN YILMAZ",
"Item3": "H\u00DCSEY\u0130N DURAK",
"Item4": "H\u00DCSEY\u00DDN DURAK"
}
我不想使用JsonConverter,因为我们公司的政策。因此,我在上面编写了我的代码。当我将Excel代码用于Json时,“HAYRETTIN YILMAZ”似乎是“HAYRETTÝN YILMAZ”。此外,您的第3项已更改。“HÜSEYİN DURAK”->“H\u00DCSEY\u0130N DURAK”。JsonConverter也有同样的问题。我怎样才能修好它?谢谢
{
"Item1": "HAYRETTIN YILMAZ",
"Item2": "HAYRETT\u00DDN YILMAZ",
"Item3": "H\u00DCSEY\u0130N DURAK",
"Item4": "H\u00DCSEY\u00DDN DURAK"
}