我一直收到System.Runtime.InteropServices.COMException(0x80028018):旧格式或无效的类型库。错误

时间:2016-08-26 14:03:08

标签: vb.net excel listview

我尝试使用ListView中相应的行颜色更新Excel工作表行 - objLv

objLv = ListView

我添加了一个对System.Drawing.dll的引用 - 运行时版本v2.0.50727 - 版本2.0.0.0

错误发生在'workbook.Styles.Item(i).Interior.Color ... 所以它是下面代码的第6行。我应用了一些解决方案,但无法解决问题。

Dim oldCI = New System.Globalization.CultureInfo("en-US")
'Me.sCloseDoc(strXLSFile)
Dim workbook As Excel.Workbook = Me.fOpenXlsFile(strXLSFile)

For i As Int32 = 0 To objLv.Items.Count - 1
    workbook.Styles.Item(i).Interior.Color = objLv.Items(i).BackColor
Next
workbook.Save()

1 个答案:

答案 0 :(得分:0)

Styles集合不是基于0的。

尝试workbook.Styles.Item(i+1).Interior.Color = objLv.Items(i).BackColor

另外,正如David在评论中提到的那样,您需要在保存WorkBook后重置文化,如下所示:

System.Threading.Thread.CurrentThread.CurrentCulture = CType(oldCI, CultureInfo)