2011-04-11 35 views
1

在我的项目我有我想要的Excel文件中导出汇总数据表,用于这个目的,我已经部署了下面的代码:农产品Excel文档在vb.net

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 

当我试图执行行:在这一点上,我不能想出什么问题 Exception has been thrown by the target of an invocation

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

我得到的错误。有人帮我吗?

回答

2

不要担心尝试使用invoke成员。

要填充值的范围到一个Excel documant你可以使用这样的事情

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,然后千篇一律的角度看它。

编辑
对于像Word文本alignement选项包等

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 
+0

@Nathan费舍尔。非常感谢你一切顺利。但请告诉我:为什么我们不会调用成员? – 2011-04-11 07:45:44

+0

无需调用成员,因为Range在编译时是已知对象。如果您在运行时加载Excel程序集,则会有所不同。 – 2011-04-12 00:09:21

+0

@Nathan。非常感谢你,请告诉我有没有可能安排一些行对齐。像vb.net里面的单词换行一样?在我们填充文档本身之前 – 2011-04-12 06:10:32