2

在某个范围内使用 Excel Interops set_Value 时出现错误。任何帮助/建议都是有价值的。

这是失败的代码。

using Excel = Microsoft.Office.Interop.Excel;

Excel.Application xlApp = new Excel.ApplicationClass();
Excel.WorkBook WB = xlApp.Workbooks.Add(Type.Missing);
Excel.WorkSheet WS = WB.Sheets[1] as Excel.WorkSheet;
object obj = (WS.get_Range("A1:D10") as Excel.Range).get_Value(Excel.XLRangeValueDataType.XLRangeValueMSPersistXML);

(WS.get_Range("A1:D10") as Excel.Range).set_Value(Excel.XLRangeValueDataType.XLRangeValueMSPersistXML,obj);

代码在这里失败。我正在设置从 excel 范围获得的相同对象值。显示的异常是 System.NotImplementedException。

如果是办公室互操作不支持 XLRangeValueMSPersistXML 同时将值设置回 excel 范围,那么我现在一无所知。

4

1 回答 1

0

设置值时,您似乎应该放弃 RangeValueDataType 设置。以下代码不会导致引发 NotImplementedException。(它还纠正了一些阻止您的原始样本编译的案例问题,并对其进行了一些整理。)

using Excel = Microsoft.Office.Interop.Excel;
Excel.Application xlApp = new Excel.ApplicationClass();
Excel.Workbook WB = xlApp.Workbooks.Add(Type.Missing);
Excel.Worksheet WS = WB.Sheets[1] as Excel.Worksheet;
Excel.Range r = WS.Range["A1:D10"];
var obj = r.Value[Excel.XlRangeValueDataType.xlRangeValueMSPersistXML];
r.Value = obj;
于 2012-01-12T19:32:59.943 回答