vb.net - 如何使用vb.net在excel单元格中粘贴以逗号分隔的十进制数字
问题描述
我想使用Microsoft.Office.Interop.Excel 在 excel 中复制一个表格。 我的 excel 是西班牙语,用“,”作为小数分隔符
代码:
Dim nSheet as integer = 1
Dim measureFile As String, measureFileText As String
Dim measureFilesPath as string = "E:\Test\"
objApp = New Microsoft.Office.Interop.Excel.Application
objBook = objApp.Workbooks.Open(_myFileName)
//'objApp.Visible = True
objSheets = objBook.Worksheets
objSheets(nSheet).activate()
objSheets(nSheet).Range("E1:E211").NumberFormat = "0,000"
objSheets(nSheet).Range("A1").Select()
measureFile = measureFilesPath & "test.txt"
measureFileText = My.Computer.FileSystem.ReadAllText(measureFile, System.Text.Encoding.UTF8)
//' Clear and copy a measureFileText to clipboard
Clipboard.Clear()
Clipboard.SetText(measureFileText)
Thread.Sleep(500)
//'Paste the measureFileText to sheet
objSheets(nSheet).Paste()
我的表数据在 test.txt 文件中,因为
数据
840 8754 834 3,66 0,965 0,31
850 8864 849 3,82 0,979 0,32
860 8974 856 3,89 0,984 0,33
870 9084 864 3,97 0,999 0,33
880 9195 879 4,12 1,018 0,34
890 9305 886 4,21 1,023 0,35
900 9415 893 4,3 1,038 0,36
910 9525 908 4,47 1,048 0,37
我使用剪贴板粘贴数据,但一直无法正确获取值大于1000的单元格。
850 8864 849 3,82 0,979 0,32
860 8974 856 3,89 0,984 0,33
870 9084 864 3,97 0,999 0,33
880 9195 879 4,12 1018,000 0,34
890 9305 886 4,21 1023,000 0,35
900 9415 893 4,3 1038,000 0,36
910 9525 908 4,47 1048,000 0,37
或者这个
850 8864 849 3,82 0,979 0,32
860 8974 856 3,89 0,984 0,33
870 9084 864 3,97 0,999 0,33
880 9195 879 4,12 1.018 0,34
890 9305 886 4,21 1.023 0,35
900 9415 893 4,3 1.038 0,36
910 9525 908 4,47 1.048 0,37
如果我在 Excel 中打开一本新书并从 .txt 文件中粘贴复制的表格,它可以正常工作。
即使我停止调试,将表格复制到剪贴板并将其粘贴到另一本书后,它也能正常工作。如果我将程序更改为可见,则 Excel 工作表和手动粘贴工作正常。
有人可以给我一个解决这个问题的想法吗?
解决方案
抱歉,我没有足够的声誉来发表评论,我不确定这是一个答案,但您可以尝试强制使用 SystemSeparator(如果系统文化在 es/ES 中):
objApp.UseSystemSeparators = true
或设置文化:
Dim ci As CultureInfo = New CultureInfo("es-ES")
objApp.DecimalSeparator = ci.NumberFormat.NumberDecimalSeparator
objApp.ThousandsSeparator = ci.NumberFormat.NumberGroupSeparator
希望这有帮助
推荐阅读
- google-cloud-platform - 如何在将突变写入 Spanner 表时避免“已经存在”突变?
- vue.js - Vuetify - 密码输入 - 附加图标 - 从文本字段到图标到文本字段的选项卡
- javascript - 如何获取JavaScript数组中特定目录内的所有文件路径
- loops - 为什么这会让时间 lisp 循环给我带来问题?
- node.js - 如何让用户从 azure 活动目录到 azure 功能
- python - 如何转置选定的行数并将它们堆叠在一起?
- eclipse - 当我在 Eclipse 中启动 Tomcat 服务器以部署应用程序时出现错误,即使我也多次清理项目
- php - Laravel 6.x。composer.json 中缺少 ext-http
- visual-studio-code - 让 vscode 在启动时打开面板
- php - Laravel 验证器检查字段值是否等于“我的首选值”