Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Импорт таблицы Excel в Visual Basic 2010 (http://forum.oszone.net/showthread.php?t=221308)

neo21 23-11-2011 17:52 1801813

Импорт таблицы Excel в Visual Basic 2010
 
Доброго времени суток.
Помогите импортировать таблицу Excel в DataGridView




Код:

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

Выдает такую ошибку:

ferget 23-11-2011 18:52 1801878

уберите
Код:

HDR=Yes;

neo21 23-11-2011 19:49 1801915

ferget, Спасибо

neo21 23-11-2011 20:29 1801953

ferget, А как задать формат ячейки DataGridView , в файле Excel стоит формат даты ГГГГММДД а в DataGridView отображается ДД.ММ.ГГГГ

neo21 25-11-2011 17:26 1803273

Цитата:

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

Разобрался:
Код:

DataGridView1.Columns(1).DefaultCellStyle.Format = "yyyyMMdd"

ferget 25-11-2011 18:59 1803364

neo21, для вопроса создавайте новое сообщение
вот вы исправили сообщение #4, а я это заметил только после сообщения #5

Цитата:

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



neo21 25-11-2011 19:24 1803390

ferget, Как задать в столбце формат числа, чтобы вместо запятой была точка.
делаю так запятая остается:
Код:

DataGridView1.Columns(3).DefaultCellStyle.Format = "0.00"

ferget 26-11-2011 00:21 1803564

надо через System.Globalization изменить десятичный разделитель на точку

neo21 26-11-2011 01:29 1803588

ferget, А как?

neo21 26-11-2011 02:23 1803604

Решил пока так:

Код:

a = DataGridView1.Rows(1).Cells(3).Value.ToString()
 
b = a.Replace(",", ".")


ferget 26-11-2011 02:45 1803610

оставляю названия проектов по умолчанию, а потом код не могу найти :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 1804495

ferget, Как присвоить label1 дату в формате yyyyMMdd



Код:

DataGridView1.Columns(1).DefaultCellStyle.Format = "yyyyMMdd"
Dim Y1
Y1 = DataGridView1.Rows(0).Cells(1).Value.ToString()
Label1.Text = Y1

Так не выходит label1 выводит дату в формате как в Excel :


LilLoco 27-11-2011 22:47 1804589

Например так:

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

neo21 28-11-2011 00:22 1804643

LilLoco, Спасибо
Код:

Dim d1 As Date = DataGridView1.Rows(0).Cells(1).Value.ToString()

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



Время: 23:41.

Время: 23:41.
© OSzone.net 2001-