1、获取不到想要的范围
var sheet1 = wb.Worksheets[0];
//var range = sheet1.Cells.CreateRange(0, 7, 22, 13);
sheet1.SelectRange(0, 7, 22, 13, true);
var render = new SheetRender(newSheet, new ImageOrPrintOptions
{
ImageType = Aspose.Cells.Drawing.ImageType.Png,
//OnePagePerSheet = true,
OnlyArea = true,
});
render.ToImage(0, “TestSheetToImg.png”);
2、直接使用Charts 保存sheet中图片,但是sheet中有多个图表图片时能否合并保存呢
var chart = sheet1.Charts.FirstOrDefault();
chart.ToImage(“TestChartToImage.png”);
@oyaspose
你可以通过设置打印区域来达到按范围截取sheet保存图片的目标。你也可以直接保存chart到图片。请查看附件 (24.3 KB)。
样例代码如下:
Workbook wb = new Workbook(filePath + "sample.xlsx");
Worksheet sheet1 = wb.Worksheets[0];
//H1:T22
//Range range = sheet1.Cells.CreateRange(0, 7, 22, 13);
//设置打印范围
sheet1.PageSetup.PrintArea = "H1:T22";
//设置边距
sheet1.PageSetup.LeftMargin = 0;
sheet1.PageSetup.RightMargin = 0;
sheet1.PageSetup.TopMargin = 0;
sheet1.PageSetup.BottomMargin = 0;
var render = new SheetRender(sheet1, new ImageOrPrintOptions
{
ImageType = Aspose.Cells.Drawing.ImageType.Png,
OnePagePerSheet = true,
});
render.ToImage(0, filePath + "out_net.png");
var chart = sheet1.Charts.FirstOrDefault();
chart.ToImage(filePath + "out_net2.png");
关于按范围截取sheet内容,你可以参考以下文档:
希望这些能够帮助到你。
非常感谢,尝试了下按打印区域是可以截取sheet的两个图表图片;
直接使用Charts来处理,sheet1.Charts.FirstOrDefault();还是取的第一张chart图,并没有合并,可能我理解的不对
@oyaspose
不客气。sheet1.Charts.FirstOrDefault()取的是第一个chart,在文件里和sheet1.Charts[0]是一样的逻辑。所以你只会转换第一个chart到图片。如果你想包含其他的图形和数据,你需要设置打印区域,这样在区域里的所有数据和图形都会转换出来。