Войти

Показать полную графическую версию : [решено] Импорт таблицы Excel в Visual Basic 2010


neo21
23-11-2011, 17:52
Доброго времени суток.
Помогите импортировать таблицу Excel в DataGridView

http://i.piccy.info/i7/b010efce9c95e6f7a12945fada8469a0/1-5-2060/39510082/1.jpg


Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim DtSet As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
MyConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\test.xlsx';Extended Properties=Excel 12.0;HDR=Yes;")

'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" file location"; Extended Properties=Excel 8.0;IMEX=1;HDR=yes
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
DtSet = New System.Data.DataSet
MyCommand.Fill(DtSet)
DataGridView1.DataSource = DtSet.Tables(0)
MyConnection.Close()

End Sub
End Class

Выдает такую ошибку:
http://i.piccy.info/i7/28c20f4ff57605891de9a76ef55c39be/1-5-2060/39819279/2.jpg

ferget
23-11-2011, 18:52
уберите HDR=Yes;

neo21
23-11-2011, 19:49
ferget, Спасибо

neo21
23-11-2011, 20:29
ferget, А как задать формат ячейки DataGridView , в файле Excel стоит формат даты ГГГГММДД а в DataGridView отображается ДД.ММ.ГГГГ

neo21
25-11-2011, 17:26
ferget, А как задать формат ячейки DataGridView , в файле Excel стоит формат даты ГГГГММДД а в DataGridView отображается ДД.ММ.ГГГГ »

Разобрался:
DataGridView1.Columns(1).DefaultCellStyle.Format = "yyyyMMdd"

ferget
25-11-2011, 18:59
neo21, для вопроса создавайте новое сообщение
вот вы исправили сообщение #4, а я это заметил только после сообщения #5

Последний раз редактировалось neo21, Сегодня в 01:38. »

neo21
25-11-2011, 19:24
ferget, Как задать в столбце формат числа, чтобы вместо запятой была точка.
делаю так запятая остается:
DataGridView1.Columns(3).DefaultCellStyle.Format = "0.00"

ferget
26-11-2011, 00:21
надо через System.Globalization изменить десятичный разделитель на точку

neo21
26-11-2011, 01:29
ferget, А как?

neo21
26-11-2011, 02:23
Решил пока так:

a = DataGridView1.Rows(1).Cells(3).Value.ToString()

b = a.Replace(",", ".")

ferget
26-11-2011, 02:45
оставляю названия проектов по умолчанию, а потом код не могу найти :sorry:


Public Shared Sub SetApplicationCultureInfo()

Dim NCI As New CultureInfo("ru-RU")
NCI.NumberFormat.NumberDecimalSeparator = "."
Application.CurrentCulture = NCI

End Sub

neo21
27-11-2011, 20:47
ferget, Как присвоить label1 дату в формате yyyyMMdd



DataGridView1.Columns(1).DefaultCellStyle.Format = "yyyyMMdd"
Dim Y1
Y1 = DataGridView1.Rows(0).Cells(1).Value.ToString()
Label1.Text = Y1
Так не выходит label1 выводит дату в формате как в Excel :

http://i.piccy.info/i7/464e19d4e1adb4ac554b398a5e25d229/1-5-2188/13246854/3.jpg

LilLoco
27-11-2011, 22:47
Например так:

1. Данные из ячейки в DataGridView записать в переменную типа DateTime
2. У DateTime есть метод .ToString() принимающий параметр формата, типа string...В нем то и указываете формат, который Вам нужен.
3. Присваиваете для Label текст нужного формата.

neo21
28-11-2011, 00:22
LilLoco, Спасибо
Dim d1 As Date = DataGridView1.Rows(0).Cells(1).Value.ToString()

Label1.Text = d1.ToString("yyyyMMdd")




© OSzone.net 2001-2012