2016-06-28 7 views
1

これは簡単な質問ですが、私はそれを行うことに成功しませんでした。 値を持つ行と列のループを実行して値を選択する必要があります。Excelのファイルから塗りつぶしの行と塗りつぶしの列を選択します(行と列の値は)

は、私はそれを行うための関数を記述しますが、デバッグで、私は行番号が1048576で数えることを確認し、ファイルが値を持つだけで32行を(同じ列で発生)

機能コードがあります。

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") 

誰かが私を助けてくれますか?

答えて

3

UsedRangeが問題を解決する場合に試してください。だからあなたの行/列のループは、私は式の値を使用することはできませんなぜあなたは知っているyou.Doありがとう

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

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

に変更できますか? excelファイルから値を選択する必要があります。次のエラーがあります。let cell = xlWorkSheetInput.UsedRange.Cells.Formula。[rowNumber、columnNumber] - 項目項目が定義されていません – MRah

+0

わかりません何をしようとしているのでしょうか、xlWorkSheetInput.UsedRange.Cells。[rowNumber、columnNumber] .Formula – DAXaholic

関連する問題