Member 12848901 Ответов: 1

Как показать изображение в excel с помощью MVC 5


Привет, я пытаюсь исправить эту проблему с 3 дней...как экспортировать webgrid в excel с помощью mvc 5.
я пробовал, но показывается только путь изображения .. любое изображение не отображается...просто я хочу показать изображение в excel.

Что я уже пробовал:

Контроллер
public void ExportClientsListToExcel(string Mode)
        {

            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition",
             "attachment;filename=GridViewExport.xls");
            Response.Charset = "";
            Response.ContentType = "application/vnd.ms-excel";
            StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            var grid = new System.Web.UI.WebControls.GridView();
            grid.DataSource = _StaffRepository.GetAllStaffListForExport(Mode);
            grid.DataBind();


           
            for (int i = 0; i < grid.Rows.Count; i++)
            {
                GridViewRow row = grid.Rows[i];
                //Apply text style to each Row
                row.Attributes.Add("class", "textmode");
            }
            grid.RenderControl(hw);

            //style to format numbers to string
            string style = @"<style> .textmode { mso-number-format:\@; } </style>";
            Response.Write(style);
            Response.Output.Write(sw.ToString());
            Response.Flush();
            Response.End();

}

Dave Kreskowiak

МММ...Мне неприятно вам это говорить, но вы даже близко не подошли к созданию файла Excel. Вы устанавливаете тип контента Excel, но контент, который вы пишете, - это HTML, а не файл Excel.

С тем кодом, который у вас есть, вы не можете показать изображение. Я предлагаю вам поискать в Google "OpenXML SDK" и использовать его для создания файла Excel. Внимание! Кривая обучения для SDK довольно крутая.

1 Ответов

Рейтинг:
1

Er. Puneet Goel

Вот фрагмент для экспорта изображения. Пожалуйста, используйте Microsoft Excel Liberary:

protected void btnExportExcelWithImage_Click(object sender, EventArgs e)
{
    var xlApp = new Excel.Application();
    Excel.Workbook xlWorkBook = xlApp.Workbooks.Add();
    Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Sheets[1];

    xlWorkSheet.Cells[1, 1] = "http://csharp.net-informations.com";
    xlWorkSheet.Cells[2, 1] = "Adding picture in Excel File";

    xlWorkSheet.Shapes.AddPicture(@"C:\Users\PGoel\Desktop\pp.jpg", MsoTriState.msoFalse, MsoTriState.msoCTrue, 50, 50, 300, 45);

    xlWorkBook.SaveAs(@"C:\Users\PGoel\Desktop\csharp.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal);
    xlWorkBook.Close(true);
    xlApp.Quit();

    Marshal.ReleaseComObject(xlApp);

    //MessageBox.Show("File created !");
}