【问题标题】:Converting excel to specific type of XMLformat?将 excel 转换为特定类型的 XML 格式?
【发布时间】:2019-12-30 14:22:05
【问题描述】:

我有一个 excel 文件,我需要转换为 XML 格式。但是,根据法国审计部门的规定,它需要采用以下格式之一:

我的问题是:是否可以将 excel 格式转换为这些 XML 编码格式之一?对不起,如果这是一个简单的问题,但我没有 excel 格式的经验。非常感谢!

法文链接: https://www.impots.gouv.fr/portail/les-comptabilites-informatisees

格式链接:

https://www.impots.gouv.fr/portail/files/media/1_metier/2_professionnel/a47a-i-viii-7.xsd

https://www.impots.gouv.fr/portail/files/media/1_metier/2_professionnel/a47a-i-vii-1.xsd

https://www.impots.gouv.fr/portail/files/media/1_metier/2_professionnel/a47a-i-viii-5.xsd

https://www.impots.gouv.fr/portail/files/media/1_metier/2_professionnel/a47a-i-viii-3.xsd

【问题讨论】:

  • 您需要使用 VBA 遍历您的 excel 文件并将值填充到字符串中,然后按照预期的 xml 文件格式将其写入硬盘
  • 好吧...您如何建议我从了解零 VBA 的人开始?使用 XML Source 选项卡进行映射是否有效?虽然我无法导出它
  • 你能提供一份你的excel表格样本吗?

标签: excel xsd file-conversion xlm


【解决方案1】:

我写了一个抽象代码,但您可以亲自参与,以满足您的需求

Private Sub CommandButton3_Click()


NRows = Sheet1.UsedRange.Rows.Count
NCols = Sheet1.UsedRange.Columns.Count
MsgBox NRows & "-" & NCols
XMLStr = "<Root>" & vbCr
For i = 2 To NRows
    XMLStr = XMLStr & "<Row>" & vbCr
    For j = 1 To NCols
         XMLStr = XMLStr & "<Col>" & Cells(i, j) & "</Col>" & vbCr
    Next
    XMLStr = XMLStr & "</Row>" & vbCr
Next
XMLStr = XMLStr & "</Root>" & vbCr
'writting string to xml file
Dim myFile As String
myFile = Application.DefaultFilePath & "\myXML.xml"
Open myFile For Output As #1
Write #1, XMLStr
Close #1
End Sub

【讨论】:

    【解决方案2】:

    听起来好像您正在使用手写 C# 进行点对点集成。这并不总是错误的,但如果你正在做很多这种类型的编码,那么使用一个好的集成引擎可能会更好。

    在这种情况下,典型的错误可能包括:

    • 将集成逻辑与当前版本的 Excel 电子表格中的确切工作表名称和列名称相结合
    • 将集成逻辑与工作表/列的确切出现顺序相结合
    • 发送格式错误的 XML 文档(不符合 XML 规范)。 Adam Norman 的代码很可能会这样做,因为它不会转义 XML 文档中重要的字符。
    • 发送无效的 XML 文档(与 XSD 不匹配)。

    上述所有情况都可以通过仔细编码来避免,但是一个好的集成引擎会帮助你正确地做到这一点。

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      相关资源
      最近更新 更多