2013-07-08 10 views
1

Я не могу решить следующую проблему:значение DataGridView колонка отображения вопрос

  • Подключение к Excel (OLEDB соединение)
  • Fetch все данные в datagridview

Пример источника извлеченной из Excel (Свойства Col1-Col3 Excel являются «General», Col4 - спецификацией даты):

Col1 Col2 Col3 Col4 
Text1 1.5 288.77 3/1/2013 
Text2 1.3 352.47 3/1/2013 
Text3 1a 206.93 3/1/2013 
Text4 1 206.93 3/1/2013 
Text5 1 206.93 3/1/2013 
  • После того, как данные в datagridview (DataGridView.AutoGenerateColumns=True), кажется, взять за должное, что Col2 содержит только целочисленные и не отображает значение клеток, которое не является целым числом.

Пример извлекается из DataGridView:

Col1 Col2 Col3 Col4 
    Text1 1.5 288.77 3/1/2013 
    Text2 1.3 352.47 3/1/2013 
    Text3  206.93 3/1/2013 
    Text4 1 206.93 3/1/2013 
    Text5 1 206.93 3/1/2013 
  • Действительная проблема в том, что я проверки достоверности данных в DataGridView против файла XML, и я доказать, журнал, который дает пользователю RowId и фактическое значение источника. Я не могу получить то же значение из из datagridview.
  • Единственное частичное решение, которое я нашел до сих пор, заключается в том, чтобы явно преобразовать все поля Excel в текст, но это, очевидно, испортило некоторые поля (пример: поле даты).

Как получить значения ВСЕХ значений SOURCE FILE внутри datagridview, а затем выполнить все последующие задачи проверки данных?

+1

Не могу даже прочитать это. формат немного. – Bit

+0

Извинения за проблему форматирования - теперь должны быть исправлены. – UncleDo

ответ

0

Похоже, вы пытаетесь получить только необработанные данные Excel (как они отформатированы на листе Excel) в datagridview для отображения целей, а затем выполнить дополнительную проверку данных. Я бы предложил использовать приведенный ниже пример строки соединительных колонн (IMEX):

strConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + 
             "Data Source=" + strFilePath + ";Jet OLEDB:Engine Type=5;Extended Properties='Excel 12.0;HDR=NO;IMEX=1'"; 
+0

Спасибо, это именно то, что мне нужно - выборка данных в том виде, в каком она есть, и затем приступить к любой проверке. – UncleDo

0

Я бы предложил создать DataTable с столбцами данных с желаемыми типами, а затем получить данные в DataTable. Наконец, привяжите DataTable к DataGridview

+0

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

+0

У вас есть какой-либо способ заранее определить типы данных столбцов? – Tarik

+0

Я имел в виду, вы можете определить тип столбца во время выполнения при чтении данных из Excel? – Tarik

0

read-a-excel-file-with-sheet-wise-into-dataset-using-csharp может быть вам полезен. Вам действительно не нужно ничего знать о данных в файле, чтобы создать полезную таблицу.

+0

Это действительный способ чтения файла Excel, однако ответ Вентсислава - именно то, что мне нужно. Благодарю. – UncleDo

+0

Нет проблем, рад, что у вас есть то, что вам нужно. – Bit

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