Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Типы передаваемых в Excel данных / 1 сообщений из 1, страница 1 из 1
22.05.2014, 15:16
    #38649148
WitC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типы передаваемых в Excel данных
Привет!
выгружаю данные из DataTable в Excel с помощью ADO.Net (OleDB провайдером)
Числовые поля в Экселе выгружаются как текст...
как исправить???

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub ReportBuilder(ByVal pathExcel As String, ByVal dtReportSource As DataTable)
        Using dataCnn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & pathExcel & ";Extended Properties='Excel 12.0 Xml;HDR=YES';")
            dataCnn.Open()
            Dim dataDA As New OleDb.OleDbDataAdapter("select * from [Отчёт$]", dataCnn)
            Dim dataCmdB As New OleDb.OleDbCommandBuilder(dataDA) With {.ConflictOption = ConflictOption.OverwriteChanges, .QuotePrefix = "[", .QuoteSuffix = "]"}
            Dim dataCmd As OleDb.OleDbCommand = dataCmdB.GetInsertCommand()
            ''устанавливаем правильные типы
            'For Each cmdParam As OleDb.OleDbParameter In dataCmd.Parameters
            '    Dim targetColumn As DataColumn = dtReportSource.Columns(cmdParam.SourceColumn)
            '    If targetColumn.DataType Is GetType(Decimal) Then
            '        cmdParam.ResetDbType()
            '        cmdParam.OleDbType = OleDb.OleDbType.Decimal
            '    ElseIf targetColumn.DataType Is GetType(Integer) Then
            '        cmdParam.ResetDbType()
            '        cmdParam.OleDbType = OleDb.OleDbType.Integer
            '    End If
            'Next
            For Each drTarget As DataRow In dtReportSource.Rows
                For Each cmdParam As OleDb.OleDbParameter In dataCmd.Parameters
                    cmdParam.Value = drTarget.Item(cmdParam.SourceColumn)
                Next
                Try
                    dataCmd.ExecuteNonQuery()
                Catch ex As Exception
                End Try
            Next
            dataCnn.Close()
        End Using
    End Sub
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Типы передаваемых в Excel данных / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]