2016-06-28 12 views
1

Es ist eine einfache Frage, aber es ist mir nicht gelungen, es zu tun. Ich muss mit einer Schleife auf die Zeilen und Spalten mit dem Wert ausführen - um die Werte auszuwählen.Wählen Sie die Füllzeilen und füllen Spalten (Zeilen und Spalten mit Werten) von Excel-Datei

Ich schreibe eine Funktion, es zu tun, sondern mit dem Debug ich sehe, dass die Zeilen zählen Nummer 1048576 und die Datei hat nur 32 Zeilen mit Werten (das gleiche passiert mit den Spalten)

Der Funktionscode:

let functionParseXmlToCsv (xmlFile:string , excelFormatFile:string , excelPath:string) = 

    let xlApp = new Excel.ApplicationClass() 
    let xlWorkBookInput = xlApp.Workbooks.Open(excelPath + DateTime.Today.ToString("yyyy_dd_MM")+".xlsx") 
    let listOfRows = ResizeArray<string>() 

    for tabs in 1 .. xlWorkBookInput.Worksheets.Count do 

     let listOfCells = ResizeArray<string>() 

     let xlWorkSheetInput = xlWorkBookInput.Worksheets.[tabs] :?> Excel.Worksheet 

     let filePath = excelPath + DateTime.Today.ToString("yyyy_dd_MM")+"_"+xlWorkSheetInput.Name+".csv" 

     //let csvFile = File.Create(filePath) 

     use csvFile = StreamWriter(filePath, true) 

     for rowNumber in 1 .. xlWorkSheetInput.Rows.Count do 


      for columnNumber in 1.. xlWorkSheetInput.Columns.Count do 

       let cell = xlWorkSheetInput.Cells.[rowNumber,columnNumber] 

       let value = string cell 

       listOfCells.Add(value) 

      let s = String.Join(", ", listOfCells) 

      csvFile.WriteLine(s) 

    File.Exists(excelPath + DateTime.Today.ToString("yyyy_dd_MM")+".xlsx") 

Könnte mir jemand helfen?

Antwort

3

Versuchen Sie, wenn UsedRange Ihr Problem behebt. ändern, damit Ihre Zeilen/Spalten-Schleife

for rowNumber in 1 .. xlWorkSheetInput.UsedRange.Rows.Count do 

und

for columnNumber in 1.. xlWorkSheetInput.UsedRange.Columns.Count do 
+0

Thank you.Do Sie wissen, Warum kann ich nicht mit Formelwerte verwenden? Ich muss die Werte aus der Excel-Datei auswählen. Ich habe einen Fehler mit dem folgenden: let cell = xlWorkSheetInput.UsedRange.Cells.Formula. [RowNumber, columnNumber] - Das Feld Element ist nicht definiert – MRah

+0

Ich bin mir nicht sicher, ob ich verstehe was du versuchst, aber vielleicht suchst du nach xlWorkSheetInput.UsedRange.Cells. [rowNumber, columnNumber] .Formula – DAXaholic

Verwandte Themen