2014-09-07 5 views
0

ОБНОВЛЕНИЕ: Я обнаружил, что этот код работает! он ищет лист Excel и выводит только те данные, которые мне нужны. Но может ли кто-нибудь объяснить мне, почему это работает? как он знает, что первая строка в электронной таблице является «индексом»?Поиск листа Excel из ASP.NET C#

//Coneection String by default empty 
    string ConStr = ""; 
    //connection string for that file which extantion is .xlsx 
    ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + "C:\\TestExcel.xlsx" + ";Extended Properties='Excel 12.0 XML;HDR=YES;';"; 
    //making query 
    string query = "SELECT * FROM [lol$] where ID='i2200'"; 
    //Providing connection 
    OleDbConnection conn = new OleDbConnection(ConStr); 
    //checking that connection state is closed or not if closed the 
    //open the connection 
    if (conn.State == ConnectionState.Closed) 
    { 
     conn.Open(); 
    } 
    //create command object 
    OleDbCommand cmd = new OleDbCommand(query, conn); 
    // create a data adapter and get the data into dataadapter 
    OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    //fill the Excel data to data set 
    da.Fill(ds); 

foreach (DataRow row in ds.Tables[0].Rows) 
{ 
    lblud.Text = "" + row["Hylde"]; 
} 

OLD Я пытался сделать это в течение нескольких часов в настоящее время, но независимо от того, что я стараюсь, я не в конечном итоге с результатом я хочу.

Так что теперь им снова «с нуля». Посмотрите, подошел ли я к этому беспристрастно.

Вопрос: Я бы не создал веб-сайт ASPX, который мог бы искать мой лист excel для конкретных данных. Что-то вроде Select * from [Sheet1$] where Column A = i2200

затем отображать только столбец B и C из этой конкретной строки в этикетку/две метки. См. Изображение здесь: http://itguruen.dk/EXCEL.png

У кого-нибудь есть простой способ сделать это? Спасибо заранее!

Jasper

ответ

0

Вы думали об импорте таблиц Excel в DataTable, а затем проанализировать, что DataTable для заполнения этикетки? Вы можете выполнять SQL-запросы в DataTables, так что вы сможете получить точные данные, которые вам потребуются довольно легко (самая сложная часть будет импортировать электронную таблицу Excel в DataTable).

Там очень подробный отчет об этом процессе здесь: http://www.aspsnippets.com/Articles/Read-and-Import-Excel-File-into-DataSet-or-DataTable-using-C-and-VBNet-in-ASPNet.aspx

+0

Да, я подумал об этом, но мне нужно иметь возможность редактировать электронную таблицу Excel из Excel. это означает, что каждый раз, когда я делаю изменения в листе, мне также придется повторно отображать данные на веб-сайте. Я просто думал, что если бы существовал способ прямого поиска и превосходного листа, это был бы самый простой способ? – Jasper

0

Обновление пост, так что вы можете увидеть решение.

Все, что я не знаю, почему это работает?

+0

У меня нет Office, поэтому у меня нет драйверов (не удалось заставить его работать). Тем не менее, проверьте, действительно ли это работает на вашем сервере. То, что вы сделали, это использовать Excel в качестве источника данных. В строке соединения «Свойства =» Excel 12.0 XML; HDR = YES' - [HDR = YES говорит, что первая строка содержит имена столбцов, а не данные] (http://msdn.microsoft.com/en-us/library/ms254500 (v = vs.110) .aspx). Hth ... – EdSF

+0

Спасибо, я понимаю сейчас;) – Jasper

Смежные вопросы