将带有UTF-8特殊字符的txt文件导入到xlsx

贝特·霍比

我有从其他系统自动导出到我的txt文件(我无法更改此系统)。当我尝试使用以下代码将这些txt文件转换为excel时(我手动创建了一个子文件夹xlsx):

Sub all()

   Dim sourcepath As String
   Dim sDir As String
   Dim newpath As String
    
    sourcepath = "C:\Users\PC\Desktop\Test\"
    newpath = sourcepath & "xlsx\"
    
    'make sure subfolder xlsx was created before

    sDir = Dir$(sourcepath & "*.txt", vbNormal)
    Do Until Len(sDir) = 0
        Workbooks.Open (sourcepath & sDir)
        With ActiveWorkbook
            .SaveAs Filename:=Replace(Left(.FullName, InStrRev(.FullName, ".")), sourcepath, newpath) & "xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            .Close
        End With
        
        sDir = Dir$
    Loop
End Sub

它确实可以工作,但是某些特殊字符(如ä,ö和Ü等)无法正确显示。即,以后我打开xlsx文件时,可以看到它们已被替换为ä等。我可以解决,现在开始替换这些,但是我想将txt改进为xlsx代码。根据这一职位或这一个应该使用ADODB.Stream是可能的。但是,我不知道如何在我的代码(循环)中实现它,以使其在我的情况下在这里工作?如果还有其他方法代替ADOB.Stream,我也可以。对我来说,没有必要使用ADOB.Stream。

安比

您是否尝试过使用参数强制执行代码页Origin我不知道您是否需要一个特定的常量,但是UTF-8常量可能是一个起点。我个人喜欢此页面作为参考源:https : //docs.microsoft.com/zh-cn/windows/win32/intl/code-page-identifiers

因此,解决方案可能像这样简单-在我的虚拟测试中有效:

Option Explicit
Private Const CP_UTF8 As Long = 65001

Public Sub RunMe()
    Dim sDir As String, sourcePath As String, fileName As String
    Dim fso As Object
    
    sourcePath = "C:\anyoldpath\"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    sDir = Dir(sourcePath & "*.txt", vbNormal)
    Do While Len(sDir) > 0
        fileName = sourcePath & "xlsx\" & fso.GetBaseName(sDir) & ".xlsx"
        Application.Workbooks.OpenText sourcePath & sDir, CP_UTF8
        ActiveWorkbook.SaveAs fileName, xlOpenXMLWorkbook
        ActiveWorkbook.Close False
        sDir = Dir()
    Loop
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将带有 rxjs 的 angular 5 模块导入到 angular 8 应用程序中

来自分类Dev

如何将带有textEncoding utf-8的NSData转换为NSURL

来自分类Dev

使用PHP将带有UTF8的CSV导出到Excel

来自分类Dev

将带有特殊字符的文件移动到新目录

来自分类Dev

无法将带有塞浦路斯数据的csv文件上传到Google Data Studio-编码utf-8错误

来自分类Dev

如何使用Fortran将带有特殊字符的特定GNUPLOT命令写入txt文件?

来自分类Dev

批处理:如何将带有特殊字符的set / p回显到文件中?

来自分类Dev

将带有“?”符号的XML导入Excel

来自分类Dev

如何将带有输入参数的 microsoft access 查询导入到 excel 中

来自分类Dev

将带有变量的多行写入文件

来自分类Dev

将带有特殊字符的字符串插入KDB +

来自分类Dev

将带有特殊字符的字符串插入KDB +

来自分类Dev

将带有特殊字符的句子分成包含空格的单词

来自分类Dev

将带有尾随符号的csv文件导入KDB表

来自分类Dev

将带有“ +”的字符串从jsp传递到servlet

来自分类Dev

将带有“&”的路径传递到批处理文件

来自分类Dev

如何将带有特殊字符的参数从 vbs 传递到批处理文件而不用双引号括起来?

来自分类Dev

Bash / Sed如何将带有特殊字符的字符串插入文件

来自分类Dev

将带有特殊字符的字符串写入 Ruby 中的文件

来自分类Dev

如何将带有模块的目录导入到Python路径,该目录是从子文件夹到原始源的符号链接?

来自分类Dev

如何将带有自定义元数据的文档从csv批量导入到Alfresco存储库?

来自分类Dev

PHP导入带有BOM的csv文件UTF8

来自分类Dev

将带有空格/ NA的文本文件导入并解析到R中

来自分类Dev

以正确的编码将带有希腊字符的Excel文件导入R

来自分类Dev

以正确的编码将带有希腊字符的Excel文件导入R

来自分类Dev

将带有单位的CSV数据导入Excel

来自分类Dev

将带有列表的 JSON dict 导入 Dataframe

来自分类Dev

将带有Segue的数据从UITableView传递到UIViewController

来自分类Dev

将带有参数的网址重定向到首页网址

Related 相关文章

  1. 1

    将带有 rxjs 的 angular 5 模块导入到 angular 8 应用程序中

  2. 2

    如何将带有textEncoding utf-8的NSData转换为NSURL

  3. 3

    使用PHP将带有UTF8的CSV导出到Excel

  4. 4

    将带有特殊字符的文件移动到新目录

  5. 5

    无法将带有塞浦路斯数据的csv文件上传到Google Data Studio-编码utf-8错误

  6. 6

    如何使用Fortran将带有特殊字符的特定GNUPLOT命令写入txt文件?

  7. 7

    批处理:如何将带有特殊字符的set / p回显到文件中?

  8. 8

    将带有“?”符号的XML导入Excel

  9. 9

    如何将带有输入参数的 microsoft access 查询导入到 excel 中

  10. 10

    将带有变量的多行写入文件

  11. 11

    将带有特殊字符的字符串插入KDB +

  12. 12

    将带有特殊字符的字符串插入KDB +

  13. 13

    将带有特殊字符的句子分成包含空格的单词

  14. 14

    将带有尾随符号的csv文件导入KDB表

  15. 15

    将带有“ +”的字符串从jsp传递到servlet

  16. 16

    将带有“&”的路径传递到批处理文件

  17. 17

    如何将带有特殊字符的参数从 vbs 传递到批处理文件而不用双引号括起来?

  18. 18

    Bash / Sed如何将带有特殊字符的字符串插入文件

  19. 19

    将带有特殊字符的字符串写入 Ruby 中的文件

  20. 20

    如何将带有模块的目录导入到Python路径,该目录是从子文件夹到原始源的符号链接?

  21. 21

    如何将带有自定义元数据的文档从csv批量导入到Alfresco存储库?

  22. 22

    PHP导入带有BOM的csv文件UTF8

  23. 23

    将带有空格/ NA的文本文件导入并解析到R中

  24. 24

    以正确的编码将带有希腊字符的Excel文件导入R

  25. 25

    以正确的编码将带有希腊字符的Excel文件导入R

  26. 26

    将带有单位的CSV数据导入Excel

  27. 27

    将带有列表的 JSON dict 导入 Dataframe

  28. 28

    将带有Segue的数据从UITableView传递到UIViewController

  29. 29

    将带有参数的网址重定向到首页网址

热门标签

归档