powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Типы передаваемых в Excel данных
1 сообщений из 1, страница 1 из 1
Типы передаваемых в Excel данных
    #38649148
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
выгружаю данные из 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
1 сообщений из 1, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Типы передаваемых в Excel данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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