在范围上使用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范围,那么我很无能为力。
答案 0 :(得分: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;