Перебирайте книги Excel в vb.net - PullRequest
0 голосов
/ 22 июля 2011

Я работаю с папкой xls файлов, которые все в одинаковом формате (автоматически генерируются путем ввода чисел в ценовое приложение).Мне нужно вытащить данные, которые находятся в ячейке D54 на листе с тем же именем в каждом файле.Кажется, не получается заставить что-либо работать, чтобы это зациклилось.

Есть идеи, как это можно сделать?

1 Ответ

0 голосов
/ 20 февраля 2013

Если вы можете создавать файлы в формате XLSX , то это то, что я бы сделал.

http://epplus.codeplex.com/

Это замечательная библиотека компонентов для работы с листами Excel XLSX.

Пример ...

Sub temp()
    Dim out As New List(Of String)
    Using pac As New ExcelPackage(New IO.FileInfo("c:\temp.xlsx"))
        For Each wb As ExcelWorksheet In pac.Workbook.Worksheets
            out.Add(wb.Cells("D54").Value.ToString)
        Next
    End Using
End Sub

В противном случае можно обратиться к библиотеке Excel Com + из офиса, чтобы открыть лист XLS с кодом, аналогичным приведенному ниже.

Sub temp2()
    Dim out As New List(Of String)
    Dim app As New Microsoft.Office.Interop.Excel.Application
    app.DisplayAlerts = False
    Dim wb As Microsoft.Office.Interop.Excel.Workbook = app.Workbooks.Open("c:\temp.xls")
    For Each ws As Microsoft.Office.Interop.Excel.Worksheet In wb.Worksheets
        Dim r As Microsoft.Office.Interop.Excel.Range = ws.Cells(54, 4)
        out.Add(r.Value.ToString)
    Next
    app.close()
End Sub
...