如何使用Excel VBA确定文件编码类型

2023-12-23

我构建了一个 Excel/VBA 工具来验证 csv 文件,以确保它们包含的数据有效。它们的 csv 可以来自任何地方(来自完整的 UNIX 系统或从 Excel 保存数据的桌面用户)。 Excel 工具被发送给企业,以便他们可以在自己的环境中验证 csv 文件,而无需承担数据离开系统的风险。因此,解决方案需要采用本机 VBA,而不是链接到外部库。

因此,使用 VBA,我需要能够自动检测 UTF-8(带或不带 BOM)或 ANSI 文件编码,并警告用户如果这些不是用于 csv 的文件编码。

我认为这可能涉及从文件开头读取几个字节并根据字节顺序标记的存在确定编码。

你能帮助我让我走上正确的道路吗?


假设您可以自由地要求用户选择正确的文件类型,让他们对自己选择的文件类型负责;)

这意味着,您可以创建一个表单,用户可以在其中选择文件名和编码类型,就像我们在file open wizard.

Else,

我建议你使用FileSystemObject。它返回一个TextStream可用于确定编码。我怀疑 VBA 支持其他类型的编码,如果支持,请纠正我:),很高兴听到。 :)

  • 如何检测编码类型 http://www.vbaexpress.com/forum/showthread.php?t=25095
  • msdn对象库模型 http://msdn.microsoft.com/en-us/library/314cz14s%28v=VS.85%29.aspx

以下是进一步考虑的链接:-

  • 更改编码类型 http://www.tek-tips.com/viewthread.cfm?qid=1392917
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Excel VBA确定文件编码类型 的相关文章

  • 复制一张工作表上的静态范围,然后根据单元格中的单个值粘贴到另一张工作表中的动态范围

    我对这个问题分为三个部分 我在 Sheet1 A1 中有一个带有周数的单元格 我在 Sheet1 B1 F1 中有一个需要复制的静态范围 然后 我需要将该值粘贴到 Sheet2 中的动态范围中 偏移量为行的周数 这是我正在为我经常使用的工作
  • Outlook 无法识别一个或多个姓名

    我有以下 vba 代码 它读取邮箱并向任何发送无效代码作为邮箱回复的用户发送回复 但有时会收到运行时错误 Outlook 无法识别一个或多个名称 我的问题是 创建新的 MAPI 配置文件是否可以解决该问题 或者我是否需要添加一个代码来解析地
  • 如何使用VBA根据条件删除Excel中的行?

    我目前正在构建一个宏来格式化数据表并删除不适用的数据行 具体来说 我希望删除列 L ABC 的行以及删除列 AA DEF 的行 到目前为止 我已经实现了第一个目标 但还没有实现第二个目标 现有代码是 Dim LastRow As Integ
  • VBA 字符串 255 个字符限制

    我在使用 VBA 时遇到问题 并注意到它的字符串限制为 255 个字符 我实际上正在尝试通过 POST 发送 JSON 并暂停执行 我注意到该字符串始终只有 255 个字符 有没有办法调整字符串的大小或其他什么 我在这个问题上浪费了大约 6
  • Pandas 0.22.0:IndexError:读取 xls 时列表索引超出范围

    我正在尝试将 282Mb 65536 行 x 138 列 xls 文件加载到 pandas 数据框中 import pandas as pd import os filename r invoicing xls dir os path di
  • 无法摆脱脚本中的硬编码延迟

    我用 vba 结合 selenium 编写了一个脚本来解析网页中可用的所有公司名称 该网页启用了延迟加载方法 因此每个滚动中只有 20 个链接可见 如果我滚动 2 次 则可见链接数为 40 个 依此类推 该网页中有 1000 个可用链接 我
  • 将匹配的行复制到另一张纸中

    我有两张表 sheet1 和sheet 2 我正在查看工作表 1 的 T 列 如果工作表 2 中 T 包含 1 则粘贴完整行 该代码运行良好 但它将sheet2 中的结果粘贴到sheet1 的同一行中 这会导致行之间出现空白 任何人都可以建
  • 使用 MID、LEN 和 FIND 函数提取单元格文本的某些部分?

    我有一份 Excel 作业 但我陷入了最后部分 我被要求使用 MID LEN 和 FIND 来提取单元格内的特定字符串 我非常了解每个人的工作方式 将这三者结合起来并让它们发挥作用是我遇到的问题 我需要将城市与地址的其余部分分开 然后将其显
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report
  • VBA在多个文件夹中搜索特定子文件夹并移动其中的所有文件

    你能帮助我吗 我想要一个宏vba来搜索SPECIFIC例如 所有存在并移动其文件的文件夹和子文件夹之间的子文件夹 Xfolder P Desktop Folder1 subfolder SUBFOLDER1 Xfolder 我正在使用 VB
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • VBA 架构技巧 - 宏封装

    我拼凑了 Excel 的概念证明 以从数据库获取数据 并需要将其打包 以便可以将其分发给我们的客户 我的第一次尝试只是将所有代码放入代码模块中 但随后在 Excel 中我可以看到宏列表中的所有模块 而我实际上只想要列表中的主要模块 我猜想我
  • Powershell - 在不安装 Excel 的情况下将 CSV 转换为 XLS

    我有一台自动生成报告的服务器 报告采用 CSV 格式 我需要能够直接加密文件 无需第三方压缩 无 WinZIP 或 WinRAR 我认为最好的想法是将 CSV 转换为 XLS 然后通过 Powershell 密码保护 XLS 文件 不幸的是
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • 如何将参数从 Excel/VBA 传递到 Rstudio 中的脚本

    我正在尝试使用 Rstudio 从 VBA 打开 R 脚本 同时将参数传递给 R 脚本 然后我可以使用 commandArgs 访问该脚本 该问题与此处描述的问题非常相似 WScript Shell 用于运行路径中包含空格且来自 VBA 的
  • 如果 Excel 中的表格包含单元格引用,如何对其进行排序?

    我在工作表 1 中有一个 Excel 数据表 它引用了许多其他工作表中的各种不同单元格 当我尝试对工作表进行排序或过滤时 引用会随着单元格的移动而发生变化 但是 我不想手动进入每个单元格并在各处插入 符号 因为有些引用是连续的 我可能想稍后
  • 在 powershell 中打开 Excel 时出错

    我需要用以下命令打开 Excel 文件CorruptLoad来自 powershell 脚本的参数 但是当我尝试做到这一点时 出现错误Exception calling Open with 15 argument s open method
  • Excel 2010 在 IF 函数中搜索文本 - 单独的单元格数据

    Program Excel 2010 Require 一种将名字 姓氏 电子邮件提取到各个单元格的方法 Data 我的数据有一个包含原始 脏数据 的表 它是原始的并且一团糟 我用一个简单的方法整理它 IF A7 Order 1 然后其余单元
  • 将 Excel 文件读入 R 并锁定单元格

    我有一个 Excel 电子表格要读入 R 它受密码保护并锁定了单元格 我可以使用 excel link 导入受密码保护的文件 但我不知道如何解锁 取消保护单元格 excel link 给了我这个错误 gt
  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之

随机推荐

  • 以编程方式删除 field_group

    我在 Drupal 7 中有一个名为 group imagecache 的 field group 我如何以编程方式删除它 我尝试阅读代码 似乎它使用了 ctools 但我宁愿不使用 ctools ctools 是 field group
  • 仅在 spock 中基于调用次数模拟方法的返回

    是否可以根据调用方法的第 n 次来模拟 spock 中方法的返回值 请注意 我不想指定传入的参数 因为它对于特定的测试用例并不重要 例如 对于第一次调用 它应该返回 x 对于第二次调用 它应该返回 y 对的 这是可能的 someObject
  • 云存储桶中的公共对象无法通过负载均衡器访问

    我为我的 Google Cloud Storage 存储桶设置了 CDN 我已经上传了一个公共对象 您可以通过此处的公共链接查看它 https storage googleapis com staging twinkle 4acfc app
  • PlayFramework 2 + Ebean - 原始 Sql 更新查询 - 对数据库没有影响

    我有一个 play Framework 2 0 4 应用程序想要修改数据库中的行 我需要将数据库中的 少数 消息更新为 已打开 状态 读取消息 我做了如下 String sql UPDATE message SET opened true
  • 为什么 Pandas 默认会迭代 DataFrame 列?

    尝试了解 Pandas 某些功能背后的设计原理 如果我有一个包含 3560 行和 18 列的 DataFrame 那么 len frame 是3560 但是 len a for a in frame is 18 也许对于来自 R 的人来说这
  • MySQL 事务难题

    我需要在单个原子事务中执行多次插入 例如 开始交易 插入 插入 commit 然而 当 MySQL 遇到错误时 它只会中止导致错误的特定语句 例如 如果第二个插入语句中有错误 提交仍然会发生 并且第一个插入语句将被记录 因此 当发生错误时
  • 如何处理使用相同库的许多 Web 应用程序的共享库

    我们有一个用 Java 制作的 Web 应用程序 它使用了 struts2 spring 和 JasperReport 该应用程序在 glassfish 4 0 上运行 应用程序的库位于 WEB INF lib 文件夹中 并且在 glass
  • 一次性渲染到完整的 3D 渲染目标

    使用 DirectX 11 我创建了一个可以绑定为渲染目标的 3D 体积纹理 D3D11 TEXTURE3D DESC texDesc3d texDesc3d Usage D3D11 USAGE DEFAULT texDesc3d Bind
  • 适用于 Windows 8 Metro 应用程序的免费 PDF 编写器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Rails 和 标签

    我对 Ruby on Rails 相当陌生 我正在尝试使用 滑动门 技术创建一些精美的 CSS 按钮 我几乎可以正常工作了 但我觉得必须有更好的方法来处理链接的标签 我目前正在做的方式 这本身并不可怕 但我想知道这是否是在 RoR 中处理跨
  • 为什么 Windows 32 位称为 Windows x86 而不是 Windows x32? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Windows 操作系统可以是 32 位或 64 位 这64 bit版本称为Windows x64但是32 bit版本称为Windows
  • 使用 Anaconda 下载 Random.py

    我正在尝试下载随机模块 想知道是否复制代码并将其放入文件编辑器中 如何通过 pip 安装它 我将代码放在记事本中 并将其保存在桌面上 名称为 random py 我现在该怎么做才能通过 anaconda 安装它 我尝试了 pip insta
  • Django:扩展用户模型与创建用户配置文件模型

    我正在 Django 中创建一个应用程序 到目前为止我一直在使用扩展用户模型 如下所示 class MyUser AbstractBaseUser 包含所有用户和个人资料信息 但我看到很多人在堆栈溢出上为个人资料和用户本身创建不同的模型 使
  • 在正则表达式替换中捕获字符串

    根据我从 Pharo 正则表达式文档中收集到的信息 我可以定义一个正则表达式对象 例如 re foo re bar asRegex 我可以通过以下方式将匹配的正则表达式替换为字符串 re copy foobar blah rebar rep
  • ASP.NET MVC 从单个视图向相关多个表添加记录

    我对 MVC 很陌生 所以如果我没有正确解释我的要求 没有使用正确的术语 我深表歉意 我有一个简单的数据库item and detail实体 它们具有一对多的关系 因此 Item 有许多详细信息 我想从单个视图向这两个表添加记录 到目前为止
  • 如何更改 UISearchBar 占位符和图像色调颜色?

    我已经尝试了几个小时的搜索结果 但我无法弄清楚这一点 也许这是不可能的 我正在尝试更改占位符文本和 UISearchBar 放大镜的色调颜色 如果重要的话 我只针对 iOS 8 0 这是我的代码以及现在的样子 let searchBar U
  • Robotium:如何在 Intellij IDEA 中为现有项目创建测试项目?

    我一直在为现有项目创建一个测试项目 对于 Eclipse 来说很简单 但是对于 IntelliJ 我被迫在工作场所使用它 我真的不知道如何使用 Robotium 框架测试项目 如果有人可以写一些明确的步骤来解释这一点 我将不胜感激 在 In
  • 为什么 Python 中的某些列表方法仅适用于已定义的变量? [复制]

    这个问题在这里已经有答案了 gt gt gt a 1 2 3 gt gt gt a append 4 gt gt gt a 1 2 3 4 But gt gt gt 1 2 3 append 4 gt gt gt Why do list h
  • Swift 中的多维数组

    编辑 正如 Adam Washington 指出的那样 从 Beta 6 开始 这段代码按原样工作 所以这个问题不再相关 我正在尝试创建并迭代二维数组 var array Array count NumColumns repeatedVal
  • 如何使用Excel VBA确定文件编码类型

    我构建了一个 Excel VBA 工具来验证 csv 文件 以确保它们包含的数据有效 它们的 csv 可以来自任何地方 来自完整的 UNIX 系统或从 Excel 保存数据的桌面用户 Excel 工具被发送给企业 以便他们可以在自己的环境中