- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个 XML 提要,它正在将按字母顺序排序的电子邮件地址列表绘制到工作表 1 中
在工作表 2 中,我在第 1 列中列出了电子邮件地址,然后在其他几列中包含了用户信息。
当我刷新数据并将新电子邮件添加到列表时,第 1 列中的电子邮件地址列表向下移动,因此其他列中的数据不一致。如果新地址被添加到第 1 列,我是否可以插入一个新行并将所有列中的所有数据向下移动。类似地,如果从提要中删除电子邮件,则删除一行数据。
我知道这真的意味着要在数据库中,但我没有那个选项。
提前致谢!
最佳答案
首先,由于缺乏信息,我将假设一个工作场景并尝试实现您的需求。您可能需要稍微更改代码以满足您的需要,但这为您提供了工作基础。
由于您的 XML 提要不包含其他数据,因此包含电子邮件地址的表格不会按照您的需要向表格的其余部分添加行。我的建议是您使用 vba 代码为您完成这项工作。
假设您有以下 xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<Email>
<address>teste@teste.com</address>
<address>teste1@teste.com</address>
<address>teste2@teste.com</address>
<address>teste3@teste.com</address>
<address>teste4@teste.com</address>
<address>teste6@teste.com</address>
</Email>
使用以下代码将在工作表上生成一个表格:
Const xmlFileUrl As String = "c:\filePath\note.xml"
Sub ClearXmlMaps()
Dim existingXmlMap As XmlMap
For Each existingXmlMap In ActiveWorkbook.XmlMaps
existingXmlMap.Delete
Next existingXmlMap
End Sub
Sub CreateMailList()
Dim xmlTable As XmlMap
ClearXmlMaps
Application.WindowState = xlNormal
ActiveWorkbook.XmlImport URL:=xmlFileUrl, ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")
Set xmlTable = ActiveWorkbook.XmlMaps(1)
xmlTable.Name = "EmailList"
End Sub
代码生成了下表的红色方 block 部分:
我还添加了一个名为“名称”的新列。现在假设我想刷新我的 XML 提要而不清除列名称上的所有信息。为此,我将使用辅助表(我的主表是“数据”,辅助表是“Aux”表)复制所有数据,刷新提要,最后,使用最后的状态重新填充我的表VLOOKUP 命令,如下所示:
Sub RefreshEmailList()
Dim existingXmlMap As XmlMap
Dim dataSheet As Worksheet
Dim auxSheet As Worksheet
Set dataSheet = ThisWorkbook.Worksheets("Data")
Set auxSheet = ThisWorkbook.Worksheets("Aux")
dataSheet.Cells.Copy auxSheet.Cells(1, 1)
auxSheet.Range(auxSheet.Cells(1, 1), auxSheet.Cells(auxSheet.Cells(auxSheet.Rows.Count, 1).End(xlUp).Row, auxSheet.Cells(1, auxSheet.Columns.Count).End(xlToLeft).Column)).Value = auxSheet.Range(auxSheet.Cells(1, 1), auxSheet.Cells(auxSheet.Cells(auxSheet.Rows.Count, 1).End(xlUp).Row, auxSheet.Cells(1, auxSheet.Columns.Count).End(xlToLeft).Column)).Value
dataSheet.Range(dataSheet.Cells(2, 2), dataSheet.Cells(dataSheet.Cells(dataSheet.Rows.Count, 1).End(xlUp).Row, dataSheet.Cells(1, dataSheet.Columns.Count).End(xlToLeft).Column)).Clear
For Each existingXmlMap In ThisWorkbook.XmlMaps
If existingXmlMap.Name = "EmailList" Then
ActiveWorkbook.XmlMaps("EmailList").DataBinding.Refresh
End If
Next existingXmlMap
dataSheet.Range(dataSheet.Cells(2, 2), dataSheet.Cells(dataSheet.Cells(dataSheet.Rows.Count, 1).End(xlUp).Row, dataSheet.Cells(1, dataSheet.Columns.Count).End(xlToLeft).Column)).FormulaR1C1 = "=IFERROR(IF(VLOOKUP([@address],Aux!C1:C,COLUMN(),FALSE) = 0 , """", VLOOKUP([@address],Aux!C1:C,COLUMN(),FALSE)), """")"
dataSheet.Range(dataSheet.Cells(2, 2), dataSheet.Cells(dataSheet.Cells(dataSheet.Rows.Count, 1).End(xlUp).Row, dataSheet.Cells(1, dataSheet.Columns.Count).End(xlToLeft).Column)).Value = dataSheet.Range(dataSheet.Cells(2, 2), dataSheet.Cells(dataSheet.Cells(dataSheet.Rows.Count, 1).End(xlUp).Row, dataSheet.Cells(1, dataSheet.Columns.Count).End(xlToLeft).Column)).Value
End Sub
如果将 xml 文件更改为以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<Email>
<address>teste@teste.com</address>
<address>teste1@teste.com</address>
<address>teste2@teste.com</address>
<address>teste3@teste.com</address>
<address>teste4@teste.com</address>
<address>teste5@teste.com</address>
<address>teste6@teste.com</address>
</Email>
然后运行 RefreshEmailList() 子例程,您将得到如下结果:
上面的解决方案适用于添加或删除行,但您应该注意两件事:
关于xml - Excel XML 数据提要使行数据脱节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30346829/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
当我将 JSON 提要(Wordpress JSON 提要)解析到我的 React Native 提要页面时,我在模拟器中没有看到任何结果,以下是我正在使用的代码; ------------AppBo
我有一个网页,其中有一个搜索页面。我提供了一个用于搜索的“动态”RSS 提要,以便用户可以订阅他喜欢的任何搜索词的搜索结果。 所以我想知道如果该搜索词返回 0 个结果(这意味着我没有“项目”可放入提要
我想要测试我创建的 RSS Feed,我正在寻找一些好的 RSS Feed 应用程序来测试。 最佳答案 不要只是尝试一堆,看看它是否有效 - 验证它。让我为您谷歌一下: W3C RSS validat
我有一些 PHP 代码可以合并两个 RSS 提要。我试图按日期对提要进行排序,但我得到了一个有趣的结果: 两个 Feed 分别排序(第一个 Feed 先列出,然后第二个饲料) 第一个提要按升序排序,第
我最近开始使用“新 Google 表格”(电子表格),他们将 URL 更改为共享的公共(public)电子表格,我不确定如何获取电子表格数据的 JSON 提要。 基于来自此 URL 的数据:https
我想知道在您的应用程序中使用其他人的 RSS 提要(例如 BBC RSS 提要)是否存在任何法律问题? 最佳答案 你真的应该问律师。但是,我在 out-law.com 上找到了这个: Using a
我们有一个提供一些 RSS 提要的站点,我们想知道有多少人订阅了每个提要,而不使用像 FeedBurner 这样的系统来为他们提供服务。 解决这个问题的原始方法基本上是记录请求,然后获取请求每个提要的
我有一个系统可以获取几百个 RSS 提要。目前,它们的刷新周期为 10 分钟,但我最好让它更快。以近实时/推送间隔获取 RSS 源的策略是什么? 我遇到的一些解决方案: 1分钟取一次;如果没有变化,则
我已经开始开发一个网页,最近聘请了某人编写代码以在 http://farmball.com/ 的中间面板中显示自定义提要(由 API 提供支持)。 . 请注意,这不是与站点博客 相关联的 RSS 提要
有谁知道我在哪里可以找到这个页面的 json 提要? http://twitter.com/#!/microsoft 我找到的最接近的是这个: http://twitter.com/status/us
如何使用 nuget 命令禁用 SSL 证书检查? PS C:\Softwares> .\nuget.exe list Unable to load the service index forsour
我订阅了许多 RSS 提要,主要来自我自己的时区(英国:目前是 GMT+1,又名 BST)。不过我也对新西兰的新闻感兴趣(目前为 GMT+12)。 我的问题是由于我沉迷于需要将未读计数保持在或接近于零
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
我在 vb.net 设置中使用 fullCalendar。我使用包含在 aspx 页面中的 JSON 提要将数据传递到日历,如下所示: events: "JSONcalendarFeed.aspx"
我的应用程序使用雅虎的天气信息 (XML) 来显示 future 5 天的天气预报。当邮政编码在美国时,这很有效。例如,下面的 url 为我提供了密歇根州富兰克林的提要。 http://xml.wea
我有一个显示我的 Instagram 动态的网站。以前我在用Instagram 遵循 API。用户/ self /媒体/最近 此 API 使用我生成一次的访问 token ,并在我的代码中作为变量保存
是否可以为特定关键字获取 BlogSpot 的 RSS 提要? 我已尝试使用以下 URL,但它们似乎不起作用。 Atom 1.0: https://blogname.blogspot.com/
Basecamp 对其 RSS 提要使用 HTTP 身份验证,但这意味着 Google Reader, Bloglines and Firefox/Safari RSS don't work . 是否
是否可以创建多语言的 RSS (2.0) 提要?假设我主要用英语( en )写博客,但有时我会创建德语( de )帖子。 RSS 规范中是否对此提供支持?我在 RSS spec 中找不到任何内容在这个
我是一名优秀的程序员,十分优秀!