2016-08-25 11 views
0

私はこれに助けが必要です.... 私はデータを持つExcelファイルを持っています。 は、と私はいくつかのXMLFILE AAの結果を必要とVB.NET
でXMLリテラルを使用して、XMLFILEにそれをエクスポートする必要があります。XMLリテラル+ VB.NETを使用してExcelから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、...など上の - 私はこれがようやったループでVB.NETでロンNUMER iと列番号= 2 を持つ細胞からそれらを得る:私はこの場合に使用XElementのようobjIDCANCELここ

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 

メインXDocumentで XElements Variables.Butのように今私はこのような変数なしの作成文書のようなものが必要です:

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> 

このループをここに書き直すにはどうすればよいですか?ここ

+0

ループステートメントを挿入することはできません。LINQの 'From .. Select'式しか使用できません。 –

+0

しかし私の場合、ループの代わりにLINQのように見えますか? –

答えて

0

は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シートの内容に合わせます。

+0

私はそれが私が必要と思う!どうもありがとう! –

関連する問題