c#如何将excel文件保存为图片文件?

huxiaomin734 2015-09-03 08:58:52
如题,c#如何将excel文件保存为图片文件?
...全文
1625 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
WDYDXF 2017-03-20
  • 打赏
  • 举报
回复
引用 9 楼 ajianchina 的回复:
已替你测试通过

using Aspose.Cells;
using Aspose.Cells.Rendering;

public void ExcelToImg()
{
	Workbook book = new Workbook(@"f:\book.xlsx");
	Worksheet sheet = book.Worksheets[0];

	sheet.PageSetup.LeftMargin = 0;
	sheet.PageSetup.RightMargin = 0;
	sheet.PageSetup.BottomMargin = 0;
	sheet.PageSetup.TopMargin = 0;

	ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
	imgOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;

	imgOptions.OnePagePerSheet = true;
	imgOptions.PrintingPage = PrintingPageType.IgnoreBlank;

	SheetRender sr = new SheetRender(sheet, imgOptions);
	sr.ToImage(0, "f:\\book.jpg");
}
Excel文件 生成图片
强,移动客户端回复的
ajianchina 2015-09-04
  • 打赏
  • 举报
回复
是可以将工作表转换为BMP、PNG、JPEG、TIFF和EMF等图片格式的,你自己试试就知道了。
ajianchina 2015-09-04
  • 打赏
  • 举报
回复
也很简单的啊,下载一个Aspose.Cells引用一下,都是破解的,功能强大,我用他主要是不想写太多代码,我在asp.net里操作excel也是用这个。生成图片:

Workbook book = newWorkbook("d:\\Book1.xls");
//创建一个图表选项的对象
ImageOrPrintOptions imgOptions = newImageOrPrintOptions();
//设置图片类型
imgOptions.setImageFormat(ImageFormat.getPng());
//获取第一张工作表
Worksheet sheet = book.getWorksheets().get(0);
//创建一个纸张底色渲染对象
SheetRender sr = new SheetRender(sheet, imgOptions);
for (int j = 0; j < sr.getPageCount(); j )
{
	//将工作表转为图片
	sr.toImage(j, "d:\\files\\mysheetimg_" j ".png");
}
huxiaomin734 2015-09-04
  • 打赏
  • 举报
回复
引用 4 楼 ajianchina 的回复:
很好解决的,你用一个picturebox放入excel文件的打印预览,然后picturebox.Image.Save(),就好了。 预览本就是图片了,呵呵。 对了,你可以将纸张高度根据实际内容来设,保证在一张图里就行。 思路给了,没几行代码,自己不会的地方再到网上搜索一下就行。
感谢您,但是我需要用web程序来完成,看是否有别的解决方法?
da21 2015-09-04
  • 打赏
  • 举报
回复
ajianchina 2015-09-04
  • 打赏
  • 举报
回复
很好解决的,你用一个picturebox放入excel文件的打印预览,然后picturebox.Image.Save(),就好了。 预览本就是图片了,呵呵。 对了,你可以将纸张高度根据实际内容来设,保证在一张图里就行。 思路给了,没几行代码,自己不会的地方再到网上搜索一下就行。
huxiaomin734 2015-09-04
  • 打赏
  • 举报
回复
引用 9 楼 ajianchina 的回复:
已替你测试通过

using Aspose.Cells;
using Aspose.Cells.Rendering;

public void ExcelToImg()
{
	Workbook book = new Workbook(@"f:\book.xlsx");
	Worksheet sheet = book.Worksheets[0];

	sheet.PageSetup.LeftMargin = 0;
	sheet.PageSetup.RightMargin = 0;
	sheet.PageSetup.BottomMargin = 0;
	sheet.PageSetup.TopMargin = 0;

	ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
	imgOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;

	imgOptions.OnePagePerSheet = true;
	imgOptions.PrintingPage = PrintingPageType.IgnoreBlank;

	SheetRender sr = new SheetRender(sheet, imgOptions);
	sr.ToImage(0, "f:\\book.jpg");
}
Excel文件 生成图片
成功了!感激不尽!
huxiaomin734 2015-09-04
  • 打赏
  • 举报
回复
有人帮忙解决下吗?
ajianchina 2015-09-04
  • 打赏
  • 举报
回复
已替你测试通过

using Aspose.Cells;
using Aspose.Cells.Rendering;

public void ExcelToImg()
{
	Workbook book = new Workbook(@"f:\book.xlsx");
	Worksheet sheet = book.Worksheets[0];

	sheet.PageSetup.LeftMargin = 0;
	sheet.PageSetup.RightMargin = 0;
	sheet.PageSetup.BottomMargin = 0;
	sheet.PageSetup.TopMargin = 0;

	ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
	imgOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;

	imgOptions.OnePagePerSheet = true;
	imgOptions.PrintingPage = PrintingPageType.IgnoreBlank;

	SheetRender sr = new SheetRender(sheet, imgOptions);
	sr.ToImage(0, "f:\\book.jpg");
}
Excel文件 生成图片
huxiaomin734 2015-09-04
  • 打赏
  • 举报
回复
引用 6 楼 ajianchina 的回复:
也很简单的啊,下载一个Aspose.Cells引用一下,都是破解的,功能强大,我用他主要是不想写太多代码,我在asp.net里操作excel也是用这个。生成图片:

Workbook book = newWorkbook("d:\\Book1.xls");
//创建一个图表选项的对象
ImageOrPrintOptions imgOptions = newImageOrPrintOptions();
//设置图片类型
imgOptions.setImageFormat(ImageFormat.getPng());
//获取第一张工作表
Worksheet sheet = book.getWorksheets().get(0);
//创建一个纸张底色渲染对象
SheetRender sr = new SheetRender(sheet, imgOptions);
for (int j = 0; j < sr.getPageCount(); j )
{
//将工作表转为图片
sr.toImage(j, "d:\\files\\mysheetimg_" j ".png");
}


十分感谢您!
我下载了一个Aspose.Cells.dll引用了,但是里面好像有的方法是不存在的,请您指教下!
huxiaomin734 2015-09-03
  • 打赏
  • 举报
回复
引用 1 楼 guwei4037 的回复:
http://stackoverflow.com/questions/1287879/programmatically-c-convert-excel-to-an-image

这里面提供的答案有几个思路:
1、使用现成的控件来实现。
比如:http://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Convert-Excel-to-Image-Worksheet-to-Image-in-C-VB.NET.html
http://www.spreadsheetgear.com/support/samples/imaging.aspx
2、间接思路。
从excel先转成pdf,然后再读取pdf里面的图片。
http://www.cnblogs.com/amylis_chen/p/3754814.html



谢谢您提供的思路,您给的网站注册后激活的邮件好像不能发到邮箱,间接思路,我的表格比较宽,转成pdf的话会被截成两半,请您再帮忙点拨点拨。谢谢!
我的excel表格是不固定的,下面是我表格的一种
Free Spire.XLS for .NET 是e-iceblue公司开发的一款支持对所有Excel格式类型文件进行操作的.NET 控件。它适用于任何类型的应用程序比如ASP.NET Web应用程序或者Windows桌面应用程序。Spire.XLS for .NET允许开发人员创建和管理Excel,而不需要安装Microsoft Excel或者Microsoft Office。相比Microsoft,Spire.XLS for .NET对于开发人员来说是一个更好的选择 - 自动化,安全,稳定,可扩展性延伸,速度快,价格便宜和功能强大。 通过使用Free Spire.XLS for .NET,开发人员可以快速方便的查看,生成,读写以及自定义编辑Excel文件。Spire.XLS for .NET支持Excel 97-2003, Excel 2007, Excel 2010 and Excel 2013。它还支持C#, VB.NET, ASP.NET和 ASP.NET MVC编程语言 作为一款专业,强大,方便易用的控件,Spire.XLS for .NET有一下主要功能: 新建Excel文件,编辑已有的Excel文件,多种保存Excel方式,设置Excel文件属性,文件打印设置,合并,拆分或者拷贝单元格,支持对Excel文件加锁或者加密保护。 Spire.XLS for .NET支持把数据从数据库导出到Excel工作表,或者把数据从Excel数据导入到数据库。 Spire.XLS for .NET 提供强大的功能为开发者设置单元格格式。这次格式化数字,文字缩进,定位调整,设置单元格边线,单元格填充以及保护等。 开发人员可以轻松的利用Spire.XLS for .NET向Excel文件里面写入内容,包括超过530多种的公式,70多种表格,支持插入图片,不同类型的文字,链接,注释甚至VBA等。 Spire.XLS for .NET 还允许开发人员将Excel文件转换成PDF, HTML, CSV, Text, XML以及图片格式。 注:下载包含有Spire.xls.dll文件以及部分Demo, 你可以调用DLL并参照Demo提供的代码处理Excel文档。

110,586

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧