1

我正在使用 MVC3。我正在视图中显示一些内容和图表(使用 jqplot 的图表)。现在我想将内容和图表导出到excel。我已经将内容导出到 Excel。现在我想将图像添加到excel。我已经将图表转换为图像并作为源分配给视图中的一个图像。现在是否可以通过获取该图像源和类似的东西将该图像添加到控制器中的 excel 内容中?

4

2 回答 2

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);
}
}
于 2012-11-01T09:45:23.467 回答
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);
}

希望能帮助到你

于 2012-11-01T10:10:45.793 回答