我正在使用MVC3。我在视图中显示了一些内容和图表(使用jqplot的图表)。现在我想将内容和图表导出为excel。我已经完成了向excel导出内容的工作。现在我想将图像添加到excel。我已经将图表转换为图像,并将其指定为视图中一个图像的源。现在是否可以通过获取该图像源和类似的东西来添加该图像以从控制器中获取内容?
答案 0 :(得分:1)
您可以尝试使用EPPlus库http://epplus.codeplex.com/。
您无需将图表转换为图片并将其插入Excel,您可以使用此库创建与您应用中的图表相同的图表。
使用EPPlus将图像添加到Excel的示例(这只是示例,而不是完整代码):
using (System.Drawing.Image img = /*...Load image here...*/)
{
if (img != null)
{
//set row height to accommodate the picture
ws.Row(currentRow).Height = ExcelHelper.Pixel2RowHeight(pictureHeight + 1);
//add picture to cell
ExcelPicture pic = ws.Drawings.AddPicture("PictureUniqueName", img);
//position picture on desired column
pic.From.Column = pictureCol - 1;
pic.From.Row = currentRow - 1;
pic.From.ColumnOff = ExcelHelper.Pixel2MTU(1);
pic.From.RowOff = ExcelHelper.Pixel2MTU(1);
//set picture size to fit inside the cell
pic.SetSize(pictureWidth, pictureHeight);
}
}
答案 1 :(得分:0)
这就是我在excel表中放置图片的方式:
Excel.Range picPosition = xlSShhh.Cells[2, 15];
Excel.Pictures p = xlSShhh.Pictures(System.Type.Missing) as Excel.Pictures;
Excel.Picture pic = null;
try
{
pic = p.Insert(path + pic_name + ".png", System.Type.Missing);
pic.ShapeRange.LockAspectRatio = Microsoft.Office.Core.MsoTriState.msoCTrue;
pic.ShapeRange.Width = 180;
pic.ShapeRange.Height = 180;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
希望有所帮助