欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net中调用Office来制作3D统计图的实例代码】,下面是详细的讲解!
asp.net中调用Office来制作3D统计图的实例代码
public class ChartFactory
{
public ChartFactory()
{
InitTypeMap();
//
// TODO: 在此处添加构造函数逻辑
//
}
protected System.Web.UI.WebControls.Image imgHondaLineup;
private string[] chartCategoriesArr;
private string[] chartValuesArr;
private OWC11.ChartChartTypeEnum chartType= OWC11.ChartChartTypeEnum.chChartTypeColumn3D;//默认值
private static Hashtable chartMap=new Hashtable();
private static string chartTypeCh="垂直柱状图" ;
private static string chartTitle="";
private void InitTypeMap()
{
chartMap.Clear();
OWC11.ChartChartTypeEnum[] chartTypes=new OWC11.ChartChartTypeEnum[]{ ChartChartTypeEnum.chChartTypeColumnClustered,
ChartChartTypeEnum.chChartTypeColumn3D,
ChartChartTypeEnum.chChartTypeBarClustered,
ChartChartTypeEnum.chChartTypeBar3D,
ChartChartTypeEnum.chChartTypeArea,
ChartChartTypeEnum.chChartTypeArea3D,
ChartChartTypeEnum.chChartTypeDoughnut,
ChartChartTypeEnum.chChartTypeLineStacked,
ChartChartTypeEnum.chChartTypeLine3D,
ChartChartTypeEnum.chChartTypeLineMarkers,
ChartChartTypeEnum.chChartTypePie,
ChartChartTypeEnum.chChartTypePie3D,
ChartChartTypeEnum.chChartTypeRadarSmoothLine,
ChartChartTypeEnum.chChartTypeSmoothLine};
string[] chartTypesCh=new string [] {"垂直柱状统计图","3D垂直柱状统计图","水平柱状统计图","3D水平柱状统计图","区域统计图","3D区域统计图","中空饼图","折线统计图","3D折线统计图","折线带点统计图","饼图","3D饼图","网状统计图","弧线统计图"};
for(int i=0;i<chartTypes.Length;i++)
{
chartMap.Add(chartTypesCh[i],chartTypes[i]);
}
}
public ChartSpaceClass BuildCharts ()
{
string chartCategoriesStr=String.Join ("/t", chartCategoriesArr);
string chartValuesStr=String.Join ("/t", chartValuesArr);
OWC11.ChartSpaceClass oChartSpace=new OWC11.ChartSpaceClass ();
// ------------------------------------------------------------------------
// Give pie and doughnut charts a legend on the bottom. For the rest of
// them let the control figure it out on its own.
// ------------------------------------------------------------------------
chartType=(ChartChartTypeEnum)chartMap[chartTypeCh];
if (chartType==ChartChartTypeEnum.chChartTypePie ||
chartType==ChartChartTypeEnum.chChartTypePie3D ||
chartType==ChartChartTypeEnum.chChartTypeDoughnut)
{
oChartSpace.HasChartSpaceLegend=true;
oChartSpace.ChartSpaceLegend.Position=ChartLegendPositionEnum.chLegendPositionBottom;
}
oChartSpace.Border.Color="blue";
oChartSpace.Charts.Add(0);
oChartSpace.Charts[0].HasTitle=true;
oChartSpace.Charts[0].Type=chartType;
oChartSpace.Charts[0].ChartDepth=125;
oChartSpace.Charts[0].AspectRatio=80;
oChartSpace.Charts[0].Title.Caption=chartTitle;
oChartSpace.Charts[0].Title.Font.Bold=true;
oChartSpace.Charts[0].SeriesCollection.Add(0);
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection.Add ();
// ------------------------------------------------------------------------
// If you're charting a pie or a variation thereof percentages make a lot
// more sense than values...
// ------------------------------------------------------------------------
if (chartType==ChartChartTypeEnum.chChartTypePie ||
chartType==ChartChartTypeEnum.chChartTypePie3D ||
chartType==ChartChartTypeEnum.chChartTypeDoughnut)
{
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasPercentage=true;
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasValue=false;
}
// ------------------------------------------------------------------------
// Not so for other chart types where values have more meaning than
// percentages.
// ------------------------------------------------------------------------
else
{
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasPercentage=false;
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].HasValue=true;
}
// ------------------------------------------------------------------------
// Plug your own visual bells and whistles here
// ------------------------------------------------------------------------
oChartSpace.Charts[0].SeriesCollection[0].Caption=String.Empty;
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Name="verdana";
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Size=10;
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Bold=true;
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Font.Color="red";
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Position=ChartDataLabelPositionEnum.chLabelPositionCenter;
if (chartType==ChartChartTypeEnum.chChartTypeBarClustered ||
chartType==ChartChartTypeEnum.chChartTypeBar3D ||
chartType==ChartChartTypeEnum.chChartTypeColumnClustered ||
chartType==ChartChartTypeEnum.chChartTypeColumn3D)
{
oChartSpace.Charts[0].SeriesCollection[0].DataLabelsCollection[0].Position=ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
}
oChartSpace.Charts[0].SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimCategories,
Convert.ToInt32(OWC11.ChartSpecialDataSourcesEnum.chDataLiteral), chartCategoriesStr);
oChartSpace.Charts[0].SeriesCollection[0].SetData (OWC11.ChartDimensionsEnum.chDimValues,
Convert.ToInt32(OWC11.ChartSpecialDataSourcesEnum.chDataLiteral), chartValuesStr);
return oChartSpace;
}
#region 属性设置
public string[] chartCategoriesArrValue
{
get
{
return chartCategoriesArr;
}
set
{
chartCategoriesArr=value;
}
}
public string[] chartValuesArrValue
{
get
{
return chartValuesArr;
}
set
{
chartValuesArr=value;
}
}
public string chartTypeValue
{
get
{
return chartTypeCh;
}
set
{
chartTypeCh=value;
}
}
public string chartTitleValue
{
get
{
return chartTitle;
}
set
{
chartTitle=value;
}
}
#endregion
}
//调用 首先需要在页面上放置一个Image来显示产生的统计图
public void ShowChart()
{
//初始化赋值
chartFactory.chartCategoriesArrValue=chartCategories;
chartFactory.chartValuesArrValue=chartValues;
chartFactory.chartTitleValue=chartTitle;
chartFactory.chartTypeValue=chartType;
OWC11.ChartSpaceClass oChartSpace=chartFactory.BuildCharts();
string path=Server.MapPath(".") + @"/images/Chart.jpeg"; //产生图片并保存 页可以是png gif图片
oChartSpace.ExportPicture(path,"jpeg", 745, 500);
Image1.ImageUrl=path; // 显示统计图
}
// 保存统计图请参照上一篇文章
//由于每次生成的统计图都会覆盖原来的图片所以有必要的话可以用日期加时间的方式来作为图片的名字,但是这样将会产生很多图片需及时处理,如不需要只需取同名覆盖原来图片即可。
关于asp.net中调用Office来制作3D统计图的实例代码的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【服务器】asp.net页面状态管理cookie和服务器状
- 【Repeater控件】.NET实现Repeater控件+AspNetPag
- 【客户端】获取客户端IP地址c#/vb.net各自实现代
- 【asp】asp.net上传execl文件后 在页面上加载显示
- 【Excel】页面导出为Excel的时间格式的问题-时间
- 【ref】asp.net(c#)ref out params的区别-out-pa
- 【数据控件】asp.net获得数据控件事件索引并获取
- 【NET】10个.NET中删除空白字符串的方法-删除空白
- 【web】web.config配置连接字符串的方法-config配
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
