将数据导出到excel
问题描述:
问题1:要导出到Excel的数据是使用我的vb.net代码中的二维数组对象准备的。当试图分配此数组对象ExcelRange.Value或.Value2性能,它的工作原理除了当任何细胞值的文本长度要导出超过8203细(抛出异常与msg“中从HRESULT异常:0x800A03EC”)将数据导出到excel
问题2:尽管使用excelrange.FormulaArray属性,与消息“无法设置Range类FormulaArray属性”错误。但它使用字符串数组在vb6中正常工作。 是什么原因? 下面是详细的错误,当我使用excelrange.FormulaArray属性导出到Excel的
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 2010 Performance: Performance and Limit Improvements限制到单元格公式为8000个字符。但是,进一步的测试显示,Excel 2007接受了一串32767个字符(我没有2010的副本)。
如果从一个台移动,通常应该使用
.Value
或.Formula
,FormulaArray
为其中一个公式应用于一单元格范围的特殊情况。
在提交的测试用例中,您试图将一个VB数组赋值给Range.Value。改变这个分配数组的单个成员工作。
我已经创建的Excel宏这表明该错误的简单的代码,我是这里getting.Download文件[链接](http://incometaxsoft.com/pdf/test1.xlsm)在这里,我已经wriiten简单的Excel宏A10单元更新来自A1的值。由于A1包含长度文本(超过8000个字符),所以它不在A10中更新 – 2013-03-25 12:31:28
在宏中,我写了两个case.one用于错误情况,另一个用于正常情况。您可以对该行进行注释并查看错误。 – 2013-03-25 12:41:33