可以加载一个Excel工作簿,并从图表用几行代码返回图像:
namespace GetChartImage
{
class Program
{
static void Main(string[] args)
{
// Open the workbook.
var workbook = SpreadsheetGear.Factory.GetWorkbook(@"t:\tmp\Chart.xlsx");
// Get a chart named "Chart 1" on the sheet named "Sheet1".
var chart = workbook.Worksheets["Sheet1"].Shapes["Chart 1"].Chart;
// Get a System.Drawing.Bitmap image of the chart.
var bitmap = new SpreadsheetGear.Drawing.Image(chart).GetBitmap();
// Save it to a file and launch just to see that it worked.
bitmap.Save(@"t:\tmp\Chart.png", System.Drawing.Imaging.ImageFormat.Png);
System.Diagnostics.Process.Start(@"t:\tmp\Chart.png");
}
}
}
的SpreadsheetGear不支持所有的Excel图表功能(还),但你可以看到的有代表性的样本它可以在活动ASP.NET“Dynamic Chart Gallery”示例here中做什么,或者您可以下载免费试用版here并自行试用。
声明:我自己的SpreadsheetGear LLC
Export方法只接受文件名作为字符串。如果我的程序中有一个内存映射文件作为对象,当_Chart.Export(“%TEMP%\ chart.png”)被调用时,操作系统是否会意识到它? – 2009-11-11 22:30:55
我的直觉说是的,windows会很聪明,但是我没有尝试过。 – 2009-11-11 23:00:03