Member 13854008 Ответов: 1

Как экспортировать гистограмму в ppt скачать в MVC с помощью open XML


Я гуглю много кодов, но он не работает. Хотите скачать гистограмму im ppt(power point presentation) с помощью open Xml в MVC.

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

public ActionResult Index(FormCollection form)
        {
            try
            {
                //Save Image of jqPlot Chart to a file
                string fileName = Guid.NewGuid().ToString() + ".jpg";
                var data = form["imgData"].Replace("data:image/png;base64,", "");
                Byte[] bitmapData = new Byte[data.Length];
                bitmapData = Convert.FromBase64String(FixBase64ForImage(data));
                System.IO.MemoryStream streamBitmap = new System.IO.MemoryStream(bitmapData);
                Bitmap bitImage = new Bitmap((Bitmap)Image.FromStream(streamBitmap));
                //bitImage.Save(Server.MapPath("~/content/") + fileName);// This statement will save file locally as an Image.

                //Insert the jqPlot Chart's Image into PowerPoint
                using (PresentationDocument prstDoc = PresentationDocument.Open(Server.MapPath("~/content/") + "Template.pptx", true))
                {
                    string imgId = "rId" + new Random().Next(2000).ToString();
                    ImagePart imagePart = prstDoc.PresentationPart.SlideParts.FirstOrDefault().AddImagePart(ImagePartType.Jpeg, imgId);
                    imagePart.FeedData(new MemoryStream(bitmapData.ToArray()));
                    DocumentFormat.OpenXml.Drawing.Blip blip = prstDoc.PresentationPart.SlideParts.FirstOrDefault().Slide.Descendants<documentformat.openxml.drawing.blip>().First();
                    blip.Embed = imgId;
                    prstDoc.PresentationPart.SlideParts.FirstOrDefault().Slide.Save();
                    prstDoc.PresentationPart.Presentation.Save();
                    prstDoc.Close();
                }
                return File(Server.MapPath("~/content/") + "Template.pptx", "application/mspowerpoint", "BarGraphPPT.pptx");
            }
            catch (Exception ex)
            {
                return Content(ex.Message);
            }
        }
        public string FixBase64ForImage(string Image)
        {
            System.Text.StringBuilder sbText = new System.Text.StringBuilder(Image, Image.Length);

            sbText.Replace("\r\n", String.Empty);

            sbText.Replace(" ", String.Empty);

            return sbText.ToString();
        }

    }

MadMyche

Генерируется ли исходная диаграмма непосредственно из введенных пользователем данных; или, или генерируется из модели MVC?

Member 13854008

генерируется из модели mvc

1 Ответов

Рейтинг:
2