Создание документа Excel из таблицы данных SQL в vb.net - PullRequest
1 голос
/ 11 апреля 2011

В моем проекте у меня есть сводная таблица данных, которую я хочу экспортировать в документ Excel, для этого я развернул следующий код:

Public Shared Function Main() As Integer
        Dim exc As New Application

    exc.Visible = True
        Dim workbooks As Excel.Workbooks = exc.Workbooks
        Dim workbook As Excel._Workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet)
        Dim sheets As Sheets = workbook.Worksheets
        Dim worksheet As _Worksheet = CType(sheets.Item(1), _Worksheet)
        exc.DataEntryMode = True
        Dim range1 As Range = worksheet.Range("C1", Missing.Value)
        Const nCells As Integer = 5
        Dim args1(1) As [Object]
        args1(0) = nCells
        range1.GetType().InvokeMember("Value", BindingFlags.SetProperty, Nothing, range1, args1)
        Return 100
    End Function

Когда я пытался выполнить строку:

range1.GetType().InvokeMember("Value", BindingFlags.SetProperty, Nothing, range1, args1)

Я получаю ошибку: Exception has been thrown by the target of an invocation
на данный момент я не могу понять, в чем проблема. Есть ли кто-нибудь, чтобы помочь мне?

1 Ответ

2 голосов
/ 11 апреля 2011

Не беспокойтесь о попытке использовать invoke member.

Чтобы заполнить диапазон значений в документ Excel, вы можете использовать что-то вроде этого

dim row as integer = 1
dim column as integer = 1


Worksheet.Cells(row,column) = "My value here"
'or this
Worksheet.Cells("A1").Value = "my Value Here"
' or this
Worksheet.Range("A1") = "My value here"

Попробуйте посмотреть на это с точки зрения выполнения этого в Excel, а затем следуйте тому жешаблон.

РЕДАКТИРОВАТЬ
Для параметров выравнивания текста, таких как перенос слов и т. д.

dim rng as Range = Worksheet.Range("A1")
With rng
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
end With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...