问题1:要导出到Excel的数据是使用我的vb.net代码中的二维数组对象准备的。当试图将此数组对象分配给ExcelRange.Value或.Value2属性时,它工作正常,除非要导出的任何单元格值的文本长度超过8203(它会引发一个异常,其中msg为“HRESULT异常:0x800A03EC”)< / p>
问题2:然而,使用excelrange.FormulaArray属性时,出现错误消息“无法设置Range类的FormulaArray属性”。但它在使用字符串数组的vb6中工作正常。 是什么原因 ? 下面是我使用excelrange.FormulaArray属性时的详细错误
System.Runtime.InteropServices.COMException was caught
ErrorCode=-2146827284
HelpLink="C:\Program Files (x86)\Microsoft Office\Office12\1033\XLMAIN11.CHM"
Message="Unable to set the FormulaArray property of the Range class"
Source="Microsoft Office Excel"
StackTrace:
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at Excel.Range.set_FormulaArray(Object )
at globalmodule.modglobconstant.ExportMsfgToExcel(AxMSFlexGrid& Msfg1, Boolean& flg, String FileName1)
InnerException:
非常感谢导出到excel /解决此问题的任何其他替代方法
答案 0 :(得分:0)
根据Excel 2010 Performance: Performance and Limit Improvements,单元格公式的限制为8000个字符。然而,进一步的测试显示Excel 2007接受了32767个字符的字符串(我没有2010年的副本)。
如果您是从桌子转移,通常使用.Value
或.Formula
,FormulaArray
适用于将一个公式应用于某个范围的特殊情况细胞
在提交的测试用例中,您试图将一个VB数组分配给Range.Value。更改此项以指定数组中的单个成员。