将 excel 转换为特定类型的 XML 格式?
Converting excel to specific type of XMLformat?
我有一个 excel 文件,我需要转换成 XML 格式。但是,根据法国审计部门,它需要采用以下格式之一:
我的问题是:是否可以将 excel 格式转换为这些 XML 编码格式之一?对不起,如果这是一个简单的问题,但我没有使用 excel 格式的经验。非常感谢!
Link 法语:
https://www.impots.gouv.fr/portail/les-comptabilites-informatisees
Link 格式:
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
我写了一个抽象代码,但是你可以把手伸进去,以满足你的需要
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
听起来好像您正在使用手写 C# 进行点对点集成。这并不总是错误的,但是如果您进行了大量此类编码,那么使用一个好的集成引擎可能会更好。
在这种情况下,经典错误可能包括:
- 将集成逻辑与当前版本的 Excel 电子表格中的确切工作表名称和列名称相结合
- 将集成逻辑与 worksheets/columns
的确切出现顺序耦合
- 发送格式错误的 XML 文档(不符合 XML 规范)。 Adam Norman 的代码很可能会这样做,因为它不会转义 XML 文档中重要的字符。
- 发送无效的 XML 文档(与 XSD 不匹配)。
以上所有情况都可以通过仔细编码来避免,但是一个好的集成引擎可以帮助您正确地做到这一点。
我有一个 excel 文件,我需要转换成 XML 格式。但是,根据法国审计部门,它需要采用以下格式之一:
我的问题是:是否可以将 excel 格式转换为这些 XML 编码格式之一?对不起,如果这是一个简单的问题,但我没有使用 excel 格式的经验。非常感谢!
Link 法语: https://www.impots.gouv.fr/portail/les-comptabilites-informatisees
Link 格式:
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
我写了一个抽象代码,但是你可以把手伸进去,以满足你的需要
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
听起来好像您正在使用手写 C# 进行点对点集成。这并不总是错误的,但是如果您进行了大量此类编码,那么使用一个好的集成引擎可能会更好。
在这种情况下,经典错误可能包括:
- 将集成逻辑与当前版本的 Excel 电子表格中的确切工作表名称和列名称相结合
- 将集成逻辑与 worksheets/columns 的确切出现顺序耦合
- 发送格式错误的 XML 文档(不符合 XML 规范)。 Adam Norman 的代码很可能会这样做,因为它不会转义 XML 文档中重要的字符。
- 发送无效的 XML 文档(与 XSD 不匹配)。
以上所有情况都可以通过仔细编码来避免,但是一个好的集成引擎可以帮助您正确地做到这一点。