Display MS Excel Sheets and Charts in ASPX Pages using C#[favorite]
2006-11-15 08:56
465 查看
Introduction
The purpose of this article is to show how to display the exact values in an Excel sheet, with its comments, in an aspx page. The code-behind file is in C#. The method shown here helps to display an Excel sheet with its formatting including the font, color, alignment etc. This will be very useful for developers who do MS Office automation. The pre-requisites are that in the DCOM CONFIG your Excel application should be given permissions to be accessed and loaded in the server system.Conversion of the Excel formats require only a few lines of code. The format details include conversion of Excel attributes to .NET attributes, like Excel color to .NET
Color.
<PRE lang=cs id=pre0 style="MARGIN-TOP: 0px; DISPLAY: block" nd="11">/**//// <SUMMARY>
/// Converts Excel Color to Dot Net Color
/// </SUMMARY>
/// Excel Object Color
/// <RETURNS>Returns System.Drawing.Color</RETURNS>
private System.Drawing.Color
ConvertExcelColor2DotNetColor(object objExcelColor)
...{
string strColor = "";
uint uColor = 0;
int nRed = 0;
int nGreen = 0;
int nBlue = 0;
strColor = objExcelColor.ToString();
uColor = checked((uint)Convert.ToUInt32(strColor));
strColor = String.Format("{0:x2}", uColor);
strColor = "000000" + strColor;
strColor = strColor.Substring((strColor.Length - 6), 6);
uColor = 0;
uColor = Convert.ToUInt32(strColor.Substring(4, 2), 16);
nRed = (int)uColor;
uColor = 0;
uColor = Convert.ToUInt32(strColor.Substring(2, 2), 16);
nGreen = (int)uColor;
uColor = 0;
uColor = Convert.ToUInt32(strColor.Substring(0, 2), 16);
nBlue = (int)uColor;
return System.Drawing.Color.FromArgb(nRed, nGreen, nBlue);
}</PRE>
The format details also include conversion of Excel horizontal alignment to .NET horizontal alignment:
/**//// <SUMMARY>
/// Converts Excel Horizontal Alignment to DotNet Horizontal Alignment
/// </SUMMARY>
/// Excel Horizontal Alignment
/// <RETURNS>HorizontalAlign</RETURNS>
private HorizontalAlign ExcelHAlign2DotNetHAlign(object objExcelAlign)
...{
switch (((Excel.Range)objExcelAlign).HorizontalAlignment.ToString())
...{
case "-4131":
return HorizontalAlign.Left;
case "-4108":
return HorizontalAlign.Center;
case "-4152":
return HorizontalAlign.Right;
default:
return HorizontalAlign.Left;
}
}
Next is the conversion of Excel vertical alignment to .NET vertical alignment:
/**//// <SUMMARY>
/// Converts Excel Vertical Alignment to DotNet Vertical Alignment
/// </SUMMARY>
/// Excel Vertical Alignment
/// <RETURNS>VerticalAlign</RETURNS>
private VerticalAlign ExcelVAlign2DotNetVAlign(object objExcelAlign)
...{
switch (((Excel.Range)objExcelAlign).VerticalAlignment.ToString())
...{
case "-4160":
return VerticalAlign.Top;
case "-4108":
return VerticalAlign.Middle;
case "-4107":
return VerticalAlign.Bottom;
default:
return VerticalAlign.Bottom;
}
}
Chart View
The selection of sheet name will be displayed by "*" delimited. This is because "*" cannot be accepted in Worksheet names.
Problems faced in displaying a Worksheet
Merging of rows is not included because it needs to find out the logic of combining rows (whereas columns merge is possible on insertion as aTableRow).
The chart object is a GIF file, it is generated and put in the server and displayed in an ASPX page. (Here, there is no need to get the chart object inside the page). This is a preliminary trial to put a chart on an ASPX page.
Forthcoming Plans
To display all types of MS Office files in ASPX pages and to produce intelligence on data values etc.Points to Consider
This meets the business requirements with data display alone and no activities processed. A template of Excel with cell references to other Excel files will give a real time stylesheet data report.Summary
This page will be enhanced by including several functionalities of MS Excel.About Gnanandam Gopalan
I am basically a C++ Programer done various project for Industrial Automation Activities. Click here to view Gnanandam Gopalan's online profile. |
NOTE:
Please check whether Excel Application (i.e. appOP) has an instance in Web Application.
If not, type "dcomcnfg" in Run of Start Menu, Select DCOM Config in Component Services, Right Click on "Microsoft Excel Application" and select Properties, Go to Security Tab in Launch and Activation Permissions -> select Customize to enter, Give permission for Machine Name/ASPNET and Machine Name/IIS_WPG for Local Launch and Local Activation.
This permission is for loading MS Excel Application in the memory of IIS and if a particular sheet is not opening, may be naming pattern is not matching with string variable. Please check this, and revert back me.
Have a good Luck
this from :http://www.codeproject.com/aspnet/ExcelShtAndChrt-In-aspx.asp
相关文章推荐
- Using SiteMap and MasterPages to set META Tags in ASP.NET and C#
- Creating Spreadsheets and Charts in Microsoft Office Excel 2007 for Windows: Visual QuickProject Gui
- Import / export data in MS Excel using C#
- Leading and Trailing zeroes truncated and Long Numbers display in scientific notation in excel
- [转]C# and the using Statement in 3 seconds and a bug in Reflector
- Serialize and deserialize objects as Xml using generic types in C# 2.0
- Export Grid Data To Excel In Advance Kendo UI Using MVC WEB API And Entity Framework
- How To Display Hierarchical Data by Using Nested Repeater Controls and Visual C# .NET(ZT)
- How to read and save Images in a Sql Server Database using ADO.NET and C#
- Uploading File using Ajax and receiving binary data in Asp.net (C#)[转]
- .net 操作 EXCEL (using c# to control and access the excel)
- Exception handling with custom error pages in ASP.NET using C#.
- C# 中的委托和事件(http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx)
- Working with MS Excel(xls / xlsx) Using MDAC and Oledb
- Previewing and plotting multiple sheets in AutoCAD using .NET
- Embedding and Using Resources in C#
- Creating Excel Spreadsheets In Notes/IE Using OLE/ActiveX
- Get and display the size of file and directory in Linux system using du command 获取和现实linux文件大小(三)
- Using Weka and Libsvm with C# in Visual Studio
- Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath