将列添加到具有现有数据源的VSTO ListObject?

时间:2013-03-09 12:47:37

标签: vb.net winforms excel vsto

有没有人知道如何将列添加到Excel中的现有列表对象,哪一个已经从SQL源绑定了一个数据源? 我只想在该列数据的每个单元格中添加另一个带有公式的列,以匹配当时显示的任何数据量。

我有以下2个我到目前为止尝试过的例子,1。仅在Syntax error: Missing operand before '=' operator的运行时出现语法错误。 2.给出一个模糊的COM异常。

1

    Dim prodDateCol = New DataColumn("Prod Date", GetType(System.Int32),
    "=LEFT([Production Code],4)")
    ComplaintsListObject.ListColumns.Add(prodDateCol)

2

    Dim objListCol = ProdListObject.ListColumns.Add()
    Dim listColRange = objListCol.DataBodyRange
    listColRange.Cells(1, 1) = "=LEFT([Production Code],4)"

我知道,或者我可以在每次列表对象大小变化后首先检查Excel单元格,但在查看如何更详细地进行此操作之前使用Excel单元格。我希望有一种方法可以使用列表对象本身。

有人有任何例子或建议吗?

由于

更新 我已对此进行了稍微调整以进行测试,并且更多地考虑了.Expression的使用,并且它仅允许某些功能,因此我已将LEFT更改为SUBSTRING。 此示例仍返回Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

的COM异常
    Dim prodDateCol As DataColumn = New DataColumn
    prodDateCol.ColumnName = "Prod Date"
    prodDateCol.DataType = System.Type.GetType("System.Int32")
    prodDateCol.Expression = "SUBSTRING([Production Code],1,4)"

    ComplaintsListObject.ListColumns.Add(prodDateCol)

0 个答案:

没有答案