Я видел много примеров этого, но что-то не работает для меня.Чтение из Excel файла
Что я хочу сделать, так это прочитать лист Excel, учитывая лист и сохранить эти значения в списках.
Например, у меня есть файл первенствовать, который выглядит как:
First Second Third
f1 s1 t1
f2 s2 t2
f3 s3 t3
Каждая строка должна рассматриваться как набор значений.
Это то, что я делал до сих пор:
List<string> ColumnNames= GetColumnNames();
using (OleDbConnection OleDbConn = new OleDbConnection(Path))
{
OleDbConn.Open();
String cmdString = "SELECT * FROM [" + sheetName+ "]";
OleDbCommand cmd = new OleDbCommand(cmdString, OleDbConn);
DataTable dt = new DataTable();
List<ValueSet> sets = new List<ValueSet>();
Dictionary<string, Value> values = new Dictionary <string,value>()
ValueSet valueset = new ValueSet(null);
using (OleDbDataReader oleRdr = cmd.ExecuteReader())
{
while (oleRdr.Read())
{
for (int i = 0; i < ColumnNames.Count; i++)
{
ColumnName cn = new ColumnName(columnNames[i]);
string data= oleRdr[f.Name].ToString();
Value value = new Value(data, f);
if (!values.ContainsKey(ColumnNames[i]))
{
values.Add(ColumnNames[i], value);
}
else
{
values[ColumnNames[i]] = value;
}
}
valueSet= new ValueSet(values);
sets.Add(valueSet);
}
return sets;;
}
Предлагаю установить точки прерывания каждый раз, когда вы устанавливаете значения. Пройдите код и посмотрите, как вызываются ваши sets.Add (valueSet). –
Я несколько раз перешагивал код, но до сих пор не вижу, как изменять мои значения. Если вы забыли вторую секунду все мои объекты, и я попросил вас сделать это с помощью «Список <Список>« Как бы вы это сделали? @RezaShirazian –
Ваш код немного трудно читать, вы делаете datatable, затем словарь, помещаете значения в словарь, затем передаете словарь в объект 'valueet', а затем добавляете' valuesets' в список. В целом я бы предложил вернуться и снова выполнить все это с нуля, разбить проблему на более мелкие шаги и не усложнять ее. Начните с малого, добавьте только один столбец через каждую итерацию. По мере того как вы получаете мелкие кусочки, опирайтесь на них. Также не бойтесь использовать 'Debug.WriteLine()', чтобы отслеживать, как работает ваш код. –