请教一个问题:为什么Spreadsheet的get_Range得不到二维数组中的值呢?
请教一个问题:为什么Spreadsheet范围得不到二维数组中的值呢?
另外,如果row=2000时,会出现错误提示:” endcol内存已锁定。 (异常来自 HRESULT:0x8002000D (DISP_E_ARRAYISLOCKED))”,
row=1500时,会出现错误提示:”灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED))”
怎样解决?
源码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Office.Interop.Owc11;
public partial class Default4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Showsheet();
}
protected void Showsheet()
{
int row = 1000, stline = 4, col = 15;
string[,] vData;
SpreadsheetClass xlsheet = new SpreadsheetClass();
vData = new string[row + 1, col + 1];
for (int i = 1; i <= row; i++)
{
for (int j = 1; j <= col; j++)
{
vData[i, j] = i.ToString() + j.ToString();
}
}
try
{
xlsheet.get_Range(xlsheet.Cells[stline, 1], xlsheet.Cells[stline + (row - 1), col]).Value2 = vData;
}
catch (Exception ex)
{
Response.Write("stline + (cnt - 1), endcol" + ex.Message);
}
try
{
xlsheet.get_Range(xlsheet.Cells[stline, 1], xlsheet.Cells[stline + (row - 1), col]).Borders.set_LineStyle(XlLineStyle.xlContinuous);
}
catch (Exception ex)
{
Response.Write(" set_line" + ex.Message);
}
string FileName = Server.MapPath("~") + "\\abc.html";
try
{
xlsheet.Export(FileName, SheetExportActionEnum.ssExportActionNone, SheetExportFormat.ssExportHTML);
}
catch (Exception ex)
{
Response.Write("导出报表失败." + FileName + " " + ex.Message);
}
}
}
前台代码:<body>
<form id="form1" runat="server">
<div>
<object classid="clsid:0002E559-0000-0000-C000-000000000046" id="owc11">
<param name="DataType" value="HTMLURL">
<param name="HTMLURL" value="abc.html">
</object>
</div>
</form>
</body>