sda*_*aau 5 csv excel localization
我有一个具有以下值的 .csv 文件:
1488201602.653, 8.304700E-04, 3.079498E-03
1488201603.107, 8.677357E-04, 2.856719E-03
1488201821.012, 7.071995E-04, 4.147542E-03
Run Code Online (Sandbox Code Playgroud)
从代码片段中可以看出,数字采用不同的格式:第一列有一个完整的数字,.一个句点作为小数点分隔符。第二列和第三列是科学记数法的数字,除了使用大写外E,再次使用句点作为小数点分隔符;任何值中都没有千位分隔符。
当我尝试在 Excel 2016 的丹麦本地化版本中导入它时,我得到的是这样的:
所以,我显然.在第一列中得到了大量的千位分隔符作为句点,但是,如果我选择第一个数字,公式字段会显示:
... 意思是,原来1488201602.653在.csv文件中的数字,现在被解释为整数1488201602653,这是完全错误的。
对于 sevcond 和第三列,如果我选择一个数字,则公式字段显示:
...这意味着,这是最初的数量8.304700E-04将在.csv文件中,则成为8,30E+02在该单元格,如图830,47中的.csv,这是-再-完全错误的。
我如何说服 Excel 以.csv正确的数值导入文件中的数据(在美国或 C 语言环境中),以便它们在丹麦语本地化(即1488201602,653和8,304700e-04)下正确显示?
我会用 VBA 尝试这样(未测试):
Sub ImportCSVFile()
Dim xFileName As Variant
xFileName = Application.GetOpenFilename("CSV File (*.csv), *.csv", , "Choose CSV", , False)
If xFileName = False Then Exit Sub
Dim wS As Worksheet
Set wS = ThisWorkbook.Sheets.Add
Dim rG As Range
Set rG = wS.Range("A1")
Dim QT As QueryTable
With wS
Set QT = .QueryTables.Add("TEXT;" & xFileName, rG)
With QT
'''Preserve initial format
.PreserveFormatting = True
'''Select the delimiter
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
'''Choose refresh options
.RefreshStyle = xlInsertDeleteCells
.RefreshOnFileOpen = False
.RefreshPeriod = 0
.SaveData = True
'''Import the data
.Refresh BackgroundQuery:=False
End With 'QT
'''Force the formatting
Call .Columns("1:3").Replace(".", ",")
End With 'wS
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1650 次 |
| 最近记录: |