欢迎光临散文网 会员登陆 & 注册

将数据从xml导入到Excel

2022-11-12 19:54 作者:流光化影z  | 我要投稿

本文介绍从xml文件向excel导入数据时,超过15位数字显示不全的解决方法。

在上一篇文章提及到,从xml文件向excel导入数据之后,由于Excel最多只能识别到15位的数值,由于身份证号码长度为18位,超过了15位,所以其后三位在Excel中会显示为0。本文将介绍两种解决思路。

1. 建立xsd文件对xml文件结构进行定义

该方法参考了stackoverflow上的提问“Importing XML files into excel with numbers of over 15 digits”,链接如下:

https://stackoverflow.com/questions/58028688/importing-xml-files-into-excel-with-numbers-of-over-15-digits

1.1 范例xml文件有如下内容

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <number>12345678901234567890</number>

(将以上内容复制进新建txt文档,保存后后缀改为.xml即可)

1.2 新建xsd文件,内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="number" type="xs:string" /> </xs:schema>

(方法同1.1,后缀名改为.xsd)

1.3  导入映射

新建xls文件依次打开开发工具 — 源 — XML映射 — 添加,将xsd文件添加进来,点击确定

1.4 建立映射

选择A1单元格,双击红框内number,可见A1单元格出现蓝色方框

1.5 导入xml

进入开发工具 – 导入,导入xml数据

1.6 结果 

可以看到数据已经完整导入

2.替换法

2.1 使用记事本打开xml文件,观察文件结构,可以看到,身份证号码均以“</身份证号码”标签结尾,使用替换功能,将“</身份证号码”全部替换为“A</身份证号码”,即,为每一个身份证号码的结尾添加字母A

2.2 直接用Excel打开该xml文件,可以看到,“身份证号码”+“A”的组合会被识别为字符串,所有的字符均得到保留

2.3 此时逐个删除“A”,就可以还原身份证号码。为便于批量操作,可以写一个VBA宏,绑定快捷键,即可批量对选中单元格的最后一位进行删除。

Sub 宏1()

'

' 宏1 宏

' 删除最后一位

'

' 快捷键: Ctrl+q

'

Dim a, b

For Each cell In Selection

a = cell.Value

If Len(a) < 1 Then

GoTo re

End If

b = Mid(a, 1, Len(a) - 1)

cell.Value = b

re:

Next

End Sub



将数据从xml导入到Excel的评论 (共 条)

分享到微博请遵守国家法律