Member 13791602 Ответов: 2

Импорт данных из excel в visual studios с помощью LINQ в visual basic


Здравствуйте, я пытаюсь использовать LINQ для импорта набора данных из excel в visual studios, чтобы работать с ним. Кто-нибудь знает синтаксис для этого?

Спасибо!

Что я уже пробовал:

Большинство учебников в интернете, которые я нашел, дают синтаксис для C#, но я еще не нашел хорошего для visual basic

2 Ответов

Рейтинг:
2

Maciej Los

Короче говоря: вы должны использовать ADO.NET[^] (OleDb) провайдер для подключения к листу Excel, после чего вы сможете использовать Linq to DataSet[^].
Шаги, которые нужно сделать:

1. Создание Метод oledbconnection[^] для подключения к файлу Excel (параметр connectionString[^])

Dim sConnStr As String = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR={1}';", "FullFileName.xlsx", "YES|NO")
Dim oConn As OleDbConnection = New OleDbConnection(sConnStr)


2. Создание Объект oledbcommand[^]
Dim sCommStr As String = "SELECT * FROM [Sheet1$];"
Dim oComm As OleDbCommand = New OleDbCommand(sCommStr, oConn)


3. Создание OleDbReader[^] для считывания данных в объект DataTable[^] (использовать объект DataTable.Метод Load(IDataReader) [^])
Dim oRdr As OleDbReader
Dim oDt As DataTable = New DataTable()
oRdr = oComm.ExecuteReader()
oDt.Load(oRdr)


4. Используйте Linq для объекта datatable
Dim myData = oDt.AsEnumerable() _
    .Where(Function(x) x.Field(Of String)("Name") = "Peter") _
    .Select(Function(x) x) _
    .ToList() 'returns a List(Of DataRow)


Больше:
Запросы в LINQ to DataSet | Microsoft Docs[^]

Другие ресурсы:
Доступ к данным Microsoft Office из .Сетевые приложения[^]
Использование LINQ для запроса таблиц в Excel 2007 (OpenXML)[^]
Пошаговое руководство: Программирование Office (C# и Visual Basic) | Microsoft Docs[^] (есть небольшой combobox на правом сайте, чтобы изменить язык)
Создайте простое приложение для обработки данных с помощью ADO.NET[^]


Member 13791602

Здравствуйте, спасибо вам за помощь! Я скопировал на первом шаге, и он говорит мне: "'New' не может быть использован на интерфейсе". Пожалуйста, посоветуйте.

Maciej Los

Я не вижу вашего кода, поэтому не могу понять сообщение об ошибке.

Wendelius

Хороший ответ!

Maciej Los

Спасибо, Мика.

Рейтинг:
2

Patrice T

Попробовать: Google визуальные основные средства LINQ
Первые 2 ответа таковы:
LINQ в Visual Basic | Microsoft Docs[^]
Написание первого запроса LINQ (Visual Basic) | Microsoft Docs[^]
Возможно, у вас есть какая-то документация для чтения.