vba判断文件编码格式_VBA编写Ribbon Custom UI编辑器07——写入xml
写入custom.xml步骤:
从Excel中读取数据并转换为xml格式的文本
然后转换编码
使用类模块CPKZip的功能,将custom.xml写入(CPKZip的写入功能下次介绍)
这里需要注意的是,如果某个Office文件没有custom.xml,除了要写入custom.xml之外,还必须在_rels/.rels文件后面,增加一条Relationship:
'写入customUI.xmlSub WriteCustomUI() Dim arr() Dim sXML As String arr = Range("A1").CurrentRegion.Value '单元格内容转换为xml文本 sXML = Array2XMLString(arr) If VBA.Len(sXML) = 0 Then MsgBox "请在单元格中设置customUI" Exit Sub End If Dim bucs2() As Byte bucs2 = sXML '转换编码 Dim bUTF8() As Byte Dim ret As String ret = ToUTF8(bucs2, bUTF8) If VBA.Len(ret) Then MsgBox "编码转换出错:" & vbNewLine & ret Exit Sub End If '检查是否设置了目标文件 If VBA.Len(FileName) = 0 Then FileName = SelectFile() If VBA.Len(FileName) = 0 Then Exit Sub End If '备份文件 If bBakFile Then VBA.FileCopy FileName, FileName & ".备份" & VBA.Format(VBA.Now(), "yyyymmddhhmmss") End If Dim zip As CPKZip Set zip = NewCPKZip() '解析文件 ret = zip.Parse(FileName) If VBA.Len(ret) Then MsgBox ret Exit Sub End If '判断是否存在CUSTOMUI_NAME,不存在的情况下还要更新rel Dim fs() As String fs = zip.Files() Dim i As Long For i = 0 To UBound(fs) If fs(i) = CUSTOMUI_NAME Then Exit For End If Next Dim b() As Byte '记录_rels/.rels If i = UBound(fs) + 1 Then '添加rel ret = zip.UnZipFile("_rels/.rels", b) If VBA.Len(ret) Then MsgBox ret Exit Sub End If ret = FromUTF8(b, bucs2) If VBA.Len(ret) Then MsgBox ret Exit Sub End If '将最后的替换为Id="VBAPKZIP" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/> Dim str As String str = bucs2 str = VBA.Left$(str, VBA.Len(str) - VBA.Len("")) str = str & "" bucs2 = str ret = ToUTF8(bucs2, b) If VBA.Len(ret) Then MsgBox ret Exit Sub End If ret = zip.AddFile("_rels/.rels", b) If VBA.Len(ret) Then MsgBox ret Exit Sub End If End If '添加customUI.xml ret = zip.AddFile(CUSTOMUI_NAME, bUTF8) If VBA.Len(ret) Then MsgBox ret Exit Sub End If Set zip = NothingEnd Sub
vba判断文件编码格式_VBA编写Ribbon Custom UI编辑器07——写入xml相关推荐
- vba判断文件编码格式_VBA 把目录下所有CSV文件的编码由UTF-8转换成ANSI
展开全部 给你编个VBS版的,但又没有文件,没有测试,请上传个文件让我试下?32313133353236313431303231363533e4b893e5b19e31333335326232以下文件 ...
- vba判断文件编码格式_utf 8-保存用VBA编码的文本文件UTF-8
utf 8-保存用VBA编码的文本文件UTF-8 我怎样才能从VBA将UTF-8编码的字符串写入文本文件,例如 Dim fnum As Integer fnum = FreeFile Open &qu ...
- vba判断文件编码格式_[VBA]Excel输出utf-8编码格式文件 使用WideCharToMultiByte
'API 函数WideCharToMultiByte参数说明 '第一个参数:指定要转换成的字符集代码页,它可以是任何已经安装的或系统自带的字符集,你也可以使用如下所示代码页之一. ' CP_AC ...
- java 判断是否为cst格式_Java判断文件编码格式
1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK. 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理 ...
- C语言判断文件编码格式
/*功能:实现文件编码格式的判断通过一个文件的最前面三个字节,可以判断出该的编码类型:ANSI: 无格式定义:(第一个字节开始就是文件内容)Unicode: 前两个字节为FFFE:Unicode bi ...
- python读取文件之前判断文件编码格式
困扰 经常用pandas读取csv格式文件,pandas默认使用utf-8编码格式,但有的文件并非这种编码,虽然可以通过记事本打开文件,然后另存为,通过保存格式为utf-8格式,但是这种方式实在是太麻 ...
- vba判断文件是否存在的两种方法
方法1. 用VBA自带的dir()判断,代码如下: 在 Microsoft Windows 中, Dir 支持多字符 (*)和单字符 (?) 的通配符来指定多重文件 Function IsFileEx ...
- 判断文件编码格式是否是UTF-8还是GBK格式
编码格式判断封装 import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.Fi ...
- java获取文件编码_java如何获取文件编码格式
1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK. 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理 ...
- java判断文件写完_Java_判断文件是否写入完成
/** * 等待文件(非目录)读写完毕,费时的操作,不要放在主线程 * * @param file 文件 */ private void waitForWirtenCompleted(File fil ...
最新文章
- 自学机器学习、深度学习、人工智能的学习资源集合
- mybatis传set参数
- spring boot错误: 找不到或无法加载主类
- 超过 1 亿 Android 用户的数据遭泄露!
- fullcalendar 上下月翻动事件_用期权做事件套利的黄金法则
- ❤️一分钟学会python条件语句❤️
- 神策分析 iOS SDK 代码埋点解析 | 数据采集
- H5调起手机端的摄像头
- 举个栗子~Tableau 技巧(225):制作事件节点时间轴
- 微信好友排行榜 最简教程 二
- 【阅读论文】第八章--多图像的质量增强--博-自动化眼底图像分析技术可筛查糖尿病患者的视网膜疾病
- Python例题8-3~8-4 T恤
- 行业elasticsearch容器化存储分离调研报告
- 我的春招实习总结:已拿字节,快手,美团Offer
- AI笔记: 数学基础之直线、圆和方程
- 原码,反码,补码的转换
- 'static_cast': cannot convert from 'double' to 'pcl::visualization::LookUpTableRepresentationPropert
- edge浏览器被百度占用了如何解决?
- JDK源码系列:子线程如何继承父线程上通过ThreadLocal绑定的数据
- vivado Non_project
热门文章
- 反转字符串的多种方式-经典面试题系列
- 五子棋小游戏(C++)
- 关于高速光耦6n137的使用总结_光耦合器应用电路的基本特性!-先进光半导体
- mybatis 依赖于jdbc_面试BAT问的最多的27道MyBatis 面试题(含答案和思维导图总结)...
- lede lcd4Linux,HLK7688A开发板,刷官方LEDE的LINKIT固件可以开机,但同样的uboot下,烧写原版代码自己编译的固件就会panic,无法识别文...
- Gateway网关系列(二):SpringCloud Gateway入门实战,路由规则
- maven package,clean,install,compile命令
- iOS平台下闪退原因汇总(一):Ran out of trampolines of type 0/1/2 运行时间错误
- 【后台任务】在线程池线程上运行代码(6)
- Android四大组件每个组件的作用?它们都可以开启多进程吗?