我用asp.net写了一个Excel拷贝图表的程序,这个程序在我本地运行都没问题。但只要发布到Windows2003的服务器上就报0x800a03ec的错。程序代码如下:
private void CopyAndPasteChart(Sheet destSheet)
{
MSExcel.ChartObjects sourceCharts = (MSExcel.ChartObjects)sheet.ChartObjects(Missing.Value);
int chartCount = sourceCharts.Count;
if (chartCount < 1)
{
return;
}
for (int chartNum = 1; chartNum <= chartCount; chartNum++)
{
MSExcel.ChartObject sourceChart = (MSExcel.ChartObject)sourceCharts.Item(chartNum);
sourceChart.Copy();
destSheet.sheet.Paste(Missing.Value, Missing.Value); MSExcel.ChartObject destChart = (MSExcel.ChartObject)destSheet.sheet.ChartObjects(chartNum);
destChart.Top = sourceChart.Top;
destChart.Height = sourceChart.Height;
destChart.Left = sourceChart.Left;
destChart.Width = sourceChart.Width;
//修改目标sheet的公式连接
MSExcel.SeriesCollection seriesCollection = (MSExcel.SeriesCollection)destChart.Chart.SeriesCollection(Missing.Value);
int chartSeriesCount = seriesCollection.Count;
for (int chartSeriesNum = 1; chartSeriesNum <= chartSeriesCount; chartSeriesNum++)
{
MSExcel.Series chartSeries = seriesCollection.Item(chartSeriesNum);
//=SERIES(\"全天,话务量\",,D:\\ls\\PBXDaily\\result\\[HWPbx24Hour_2010-08-14.xls]图''\"!表!$B$4:$B$27,1)
Match m = Regex.Match(chartSeries.Formula, "=SERIES\\(.*,.*,'?(.*\\]).+!.+\\)");
if (m.Success)
{
chartSeries.Formula = chartSeries.Formula.Replace(m.Groups[1].Value, "");
}
}
}
}
当执行到红色语句是就出错了。请问怎么解决这个问题。另外,补充一点。同样的程序写成Windows窗口程序的形式或网站发布在XP系统上就不会报错。这个错误非常诡异,请大家帮我看看。谢谢!
private void CopyAndPasteChart(Sheet destSheet)
{
MSExcel.ChartObjects sourceCharts = (MSExcel.ChartObjects)sheet.ChartObjects(Missing.Value);
int chartCount = sourceCharts.Count;
if (chartCount < 1)
{
return;
}
for (int chartNum = 1; chartNum <= chartCount; chartNum++)
{
MSExcel.ChartObject sourceChart = (MSExcel.ChartObject)sourceCharts.Item(chartNum);
sourceChart.Copy();
destSheet.sheet.Paste(Missing.Value, Missing.Value); MSExcel.ChartObject destChart = (MSExcel.ChartObject)destSheet.sheet.ChartObjects(chartNum);
destChart.Top = sourceChart.Top;
destChart.Height = sourceChart.Height;
destChart.Left = sourceChart.Left;
destChart.Width = sourceChart.Width;
//修改目标sheet的公式连接
MSExcel.SeriesCollection seriesCollection = (MSExcel.SeriesCollection)destChart.Chart.SeriesCollection(Missing.Value);
int chartSeriesCount = seriesCollection.Count;
for (int chartSeriesNum = 1; chartSeriesNum <= chartSeriesCount; chartSeriesNum++)
{
MSExcel.Series chartSeries = seriesCollection.Item(chartSeriesNum);
//=SERIES(\"全天,话务量\",,D:\\ls\\PBXDaily\\result\\[HWPbx24Hour_2010-08-14.xls]图''\"!表!$B$4:$B$27,1)
Match m = Regex.Match(chartSeries.Formula, "=SERIES\\(.*,.*,'?(.*\\]).+!.+\\)");
if (m.Success)
{
chartSeries.Formula = chartSeries.Formula.Replace(m.Groups[1].Value, "");
}
}
}
}
当执行到红色语句是就出错了。请问怎么解决这个问题。另外,补充一点。同样的程序写成Windows窗口程序的形式或网站发布在XP系统上就不会报错。这个错误非常诡异,请大家帮我看看。谢谢!
解决方案 »
- button不刷新页面而清空页面文本框的内容?(顶者有分)
- textbox放在datagrid模板列中的问题。
- 如何实现查看某个网络地址下的文件,该怎么实现
- crytal report10.0 中用excel导出数据 session 会丢失
- 关于OleDbParameter的问题!急,在线等
- datalist(dataGrid)数据2级分层显示,难啊。折腾3天了,求救,呜呜......
- 请问,如何将JS里面的变量传给ASP.net函数?多谢各位了!
- 输入字符串的格式不正确。
- 一个中文显示问题,急啊,帮帮忙
- 大侠们,请问如何把js变量的值传给.net服务器控件啊?
- 求教关于asp.net和oracle的事!
- 用vs2008写程序的问题
webform的运行权限是匿名帐号,权限很低的
Using Clipboard Class in ASP.NEThttp://www.telerik.com/community/forums/community-forums/interesting-resources/using-clipboard-class-in-asp-net.aspx