【问题标题】:Export from Excel into XML using XML Literals + VB.NET使用 XML Literals + VB.NET 从 Excel 导出为 XML
【发布时间】:2016-08-25 11:19:51
【问题描述】:

我需要这方面的帮助.... 我有包含数据的 Excel 文件。 我需要使用 VB.NET 中的 XML Literals 将其导出到 XMLfile
结果我需要一些 XML 文件:

    <?xml version="1.0" standalone="no"?>
<soapenv:Envelope xmlns:soapenv="http://...">
    <soapenv:Header/>
    <soapenv:Body xmlns:wsu="http://....xsd">           
            <Header>
                <Verb>cancel</Verb> 
            </Header>
            <Request>
                <ID>VALUE-1</ID>
                <ID>VALUE-2</ID>
                <ID>VALUE-3</ID>
                ......
            </Request>
    </soapenv:Body>
</soapenv:Envelope>

其中 VALUE-1、VALUE-2、....等等 - 我从具有 Ron Numer i 且列 Number = 2 的单元格中获取它们。 在循环中的 VB.NET 中,我这样做了:

While Not this condition
    While Not (String.IsNullOrEmpty(Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.Cells(iRow, 1).Value))
    'Check next condition with IF
                   If LCase(Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.Cells(iRow, 25).Value) = "y" Then
                   'Add XElement object into another one XML Element from main XDocument
                        objRequestCANCEL.Add(objIDCANCEL)
                        'Add Value for this new Element
                        objIDCANCEL.Value = Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet.Cells(iRow, 2).Value
                   End If
                   'Go to next Row and do the same - add XELement if condition is OK here
    iRow = iRow + 1
    End While

这里 objIDCANCEL 作为主 XDocument 中的 XElement 在这种情况下,我使用了 XElements,如变量。但现在我需要像创建文档这样的东西,没有像这样的变量:

Dim XDoc As XDocument = <?xml version="1.0" standalone="no"?>
                                  <soapenv:Envelope xmlns:soapenv="http://...">
                                        <soapenv:Header/>
                                        <soapenv:Body xmlns:wsu="http://....xsd">   
                                            <Header>
                                                <Verb>create</Verb>    
                                                <ID><%= varValue %> </ID>
                                                .....HERE I NEED ADD IN LOOP ALL VALUES FROM ALL ROWS IN EXCEL FILE.....
                                            </Header>
                                            <Request>
                                            </Request>
                                        </RequestMessage>
                                    </soapenv:Body>
                                </soapenv:Envelope>

请写信给我,我怎样才能在这里重写这个循环?

【问题讨论】:

  • 你不能在里面放任何循环语句,你只能使用 LINQ From .. Select 表达式。
  • 但是在我的情况下,我的情况看起来像 LINQ 而不是 Loop?

标签: xml vb.net xml-literals


【解决方案1】:

这是一个简单的示例,它使用 LINQ 和一个工作表来读取行 1 .. 3 的第一列 (1) 并填充一些 XML 文字:

    Dim excel As Excel.Application = New Excel.Application()
    excel.Workbooks.Open("sheet1.xlsx")
    Dim sheet As Excel._Worksheet = excel.ActiveWorkbook.ActiveSheet
    Dim cells As Excel.Range = sheet.Cells

    Dim doc As XDocument = <?xml version="1.0"?>
                           <root>
                               <values>
                                   <%= From i In Enumerable.Range(1, 3) Select <value>
                                                                                   <%= cells(i, 1).Value %>
                                                                               </value> %>
                               </values>

                           </root>

    doc.Save(Console.Out)

输出然后是例如

<root>
  <values>
    <value>1</value>
    <value>2</value>
    <value>3</value>
  </values>
</root>

根据需要将其调整为您的 XML 格式和 Excel 工作表内容。

【讨论】:

  • 我想这就是我需要的!非常感谢!
猜你喜欢
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
相关资源
最近更新 更多