Мне нужно прочитать файл Excel, используя OLEDB, указав индексы столбцов.Для примера мне нужно пометить данные в столбцах A, B, C, AA, BC, ect ... (индексы столбцов в Excel)
Как это сделать?
Спасибо завперед.
Вы пробовали запрос, подобный этому SELECT A,B,C,AA,BC FROM Sheet1$?Убедитесь, что вы вставили Extended Properties="Excel 12.0;HDR=YES в строку подключения OLEDB, это поможет вам обработать первую строку как заголовок.
SELECT A,B,C,AA,BC FROM Sheet1$
Extended Properties="Excel 12.0;HDR=YES
Thanushka,
Я использовал openxml sdk в Excel 2007 (DocumentFormat.OpenXml) для большого эффекта в этом сценарии. По сути, это библиотека LINQ, которая переносит документы Excel в объекты и позволяет выполнять запросы внутри c #, как и любой другой объект LINQ. У Microsoft действительно есть (после быстрого поиска) довольно хорошее «руководство для идиотов» на эту тему. Хорошие ресурсы вы можете найти здесь:
DocumentFormat.OpenXml
http://msdn.microsoft.com/en-us/library/dd920313%28v=office.12%29.aspx
http://blogs.msdn.com/b/johnrdurant/archive/2010/02/19/excel-open-xml-linq-part-i.aspx
http://www.briankeating.net/blog/post/2010/04/26/Linq-to-Xlsx.aspx
если вы используете LINQ, это не сложно и, безусловно, это единственный способ, с которым я справлюсь с этим типом задачи. Для меня гораздо более интуитивно понятно использовать методы, схожие с тем, как другие объекты используются в вашем приложении, и поэтому этот подход LINQ работает хорошо, если это ваша сумка.
Сначала просто напишите небольшую функцию для преобразования A, B, C, AA ... в 1,2,3,27, ... Затем используйте пронумерованный индекс, чтобы найти столбец.В сети должно быть много примеров, чтобы помочь вам сделать это.