c# - 如何在 ASP.NET MVC C# 项目的新选项卡中打开 PowerPoint 演示文稿
问题描述
我正在开发一个 ASP.NET MVC 应用程序,它有一些我想在新选项卡上显示的电源点。
我曾使用 openxml 读取文件,但我不知道如何打开它。
我读取文件的代码:
public ActionResult Index()
{
StringBuilder sb = new StringBuilder();
string file = Server.MapPath("~/PPTFiles/Test.pptx");
int numberOfSlides = CountSlides(file);
string slideText;
for (int i = 0; i < numberOfSlides; i++)
{
// Get slide text.
GetSlideIdAndText(out slideText, file, i);
sb.Append(slideText);
}
return View();
}
public static int CountSlides(string presentationFile)
{
using (PresentationDocument presentationDocument = PresentationDocument.Open(presentationFile, false))
{
return CountSlides(presentationDocument);
}
}
public static int CountSlides(PresentationDocument presentationDocument)
{
if (presentationDocument == null)
{
throw new ArgumentNullException("presentationDocument");
}
int slidesCount = 0;
PresentationPart presentationPart = presentationDocument.PresentationPart;
if (presentationPart != null)
{
slidesCount = presentationPart.SlideParts.Count();
}
return slidesCount;
}
public static void GetSlideIdAndText(out string slideText, string docName, int index)
{
using (PresentationDocument ppt = PresentationDocument.Open(docName, false))
{
PresentationPart part = ppt.PresentationPart;
OpenXmlElementList slideIds = part.Presentation.SlideIdList.ChildElements;
string relId = (slideIds[index] as SlideId).RelationshipId;
SlidePart slide = (SlidePart)part.GetPartById(relId);
StringBuilder paragraphText = new StringBuilder();
IEnumerable<A.Text> texts = slide.Slide.Descendants<A.Text>();
foreach (A.Text text in texts)
{
paragraphText.Append(text.Text);
}
slideText = paragraphText.ToString();
}
}
你能帮我解决这个问题吗?
解决方案
您无法在浏览器中打开 pptx 文件。您应该将 .pptx 文件放在服务器上的目录中。并将其链接到一个按钮。当用户单击按钮时。它会打开。
推荐阅读
- c - 从底层 MPI_Op 句柄访问 MPI_User_function
- javascript - HERE 地图 - 无法在地图居中的同时放大
- python - 填补熊猫数据框中的空白
- scikit-learn - 即使在获得评分端点后也无法找到部署
- reactjs - react-select:如何将map函数的结果整合到react-select的options中
- apache-spark - Spark rdd 缓存但未重用
- reactjs - 可以在 GET 请求后调用 OPTIONS 吗?
- git - 使用 git 子模块的存储库的 git 子树
- javascript - 如何在 Keycloak 中预先填写注册字段?(keycloak中是否有一个叫做“register_hint”的东西?)
- javascript - Google Sheets WebApp 返回值未定义