c#chart.object从Excel作为.png低分辨率
我创build了一个excel文件,并希望将其内容导出为png或jpeg文件。
不幸的是,图像的质量是非常低的。
有针对这个的解决方法吗? 我希望一个真正的高分辨率的图片。
谢谢
我目前的代码(来自互联网):
Excel.Range xlRange = xlWorksheet5.get_Range("A1", "K30"); xlRange.CopyPicture(Excel.XlPictureAppearance.xlScreen, Excel.XlCopyPictureFormat.xlPicture); Excel.ChartObject chartObj; chartObj = xlWorksheet5.ChartObjects().Add(xlRange.Left, xlRange.Top, xlRange.Width, xlRange.Height); chartObj.Activate(); string path_image = path + "\\image.png"; Excel.Chart chart = chartObj.Chart; chart.Paste(); chart.Export(path_image);
尝试这个。 你需要把[STAThread]
属性放在你运行的任何线程的入口点上。
//This first copy/paste is to convert from chart to image chartObj.CopyPicture(); xlWorksheet5.Paste(); //This image has decent resolution xlWorksheet5.Shapes.Item(xlWorksheet5.Shapes.Count).Copy(); //Save the image System.Windows.Media.Imaging.BitmapEncoder enc = new System.Windows.Media.Imaging.BmpBitmapEncoder(); enc.Frames.Add(System.Windows.Media.Imaging.BitmapFrame.Create(System.Windows.Clipboard.GetImage())); using (System.IO.MemoryStream outStream = new System.IO.MemoryStream()) { enc.Save(outStream); System.Drawing.Image pic = new System.Drawing.Bitmap(outStream); pic.Save("image.png"); }
- 在C#中创build一个Excel文件的path
- 如何在Excel中使用OLEDB获得只有excel工作表名称的列表; 过滤出在元数据中显示的非工作表
- 如何自动调整已合并单元格的列?
- 如何使用asp.net c#在浏览器中显示excel图表
- 在xsl变换之后,将<?xml version =“1.0”?>添加到xml文件的顶部
- Excel单元格公式正在更新与工作表名称。 从ASP.NET导出
- 如何在Visual Studio 2012中更改Concurrency Visualizer线程视图的导出的.csv文件中的列分隔符?
- 如何比较两个范围的Range.Value2与C#
- 将SUMPRODUCT Excel公式转换为C#