如何在Windows10的UWP程序中打开一个word文档,或显示word文档

如何在Windows10的UWP程序中打开一个word文档,或显示word文档,第1张

Open XML SDK 2.5 for Office

Open XML 是可由不同平台上的多个应用程序自由实现的字处理文档、演示文稿和电子表格的开放式标准。Open XML 旨在如实表示用 Microsoft Office 应用程序定义的二进制格式进行编码的现有字处理文档、演示文稿和电子表格。使用 Open XML 的原因很简单:现在存在数以亿计的文档,但遗憾的是,这些文档中的信息与创建文档的程序紧密耦合。Open XML 标准的目的是分离由 Microsoft Office 应用程序创建的文档,以便其他应用程序可以独立于专有格式 *** 作这些文档且不会丢失数据

1.下载 安装 :

https://www.microsoft.com/en-us/download/details.aspx?id=30425

1.OpenXMLSDKV25.msi 安装完成后目录出现DocumentFormat.OpenXml.dll

2.OpenXMLSDKToolV25.msi 这是OpenXMLTool可以打开Office 2007以上的版本并且生成标准Office XML格式和标准c#源代码工具。

OpenXMLSDKV25.msi

2.5 MB

2.5 MB

OpenXMLSDKToolV25.msi

24.9 MB

24.9 MB

使用 Open XML SDK 中的类

2.使用 Open XML SDK 2.5 中的类

Open XML SDK 2.5 中的类使用起来很简单。在安装了 Open XML SDK 2.5 之后,请在 Visual Studio 中打开现有的项目或应用程序,或者创建新的项目或应用程序。然后在您的项目或应用程序中,添加对以下组件的引用。

DocumentFormat.OpenXml

WindowsBase

3.案例

处理段落 (Open XML SDK)

public static void WriteToWordDoc(string filepath, string txt)

{

// Open a WordprocessingDocument for editing using the filepath.

using (WordprocessingDocument wordprocessingDocument =

WordprocessingDocument.Open(filepath, true))

{

// Assign a reference to the existing document body.

Body body = wordprocessingDocument.MainDocumentPart.Document.Body

// Add a paragraph with some text.

Paragraph para = body.AppendChild(new Paragraph())

Run run = para.AppendChild(new Run())

run.AppendChild(new Text(txt))

}

}

使用连续文本 (Open XML SDK)

public static void WriteToWordDoc(string filepath, string txt)

{

// Open a WordprocessingDocument for editing using the filepath.

using (WordprocessingDocument wordprocessingDocument =

WordprocessingDocument.Open(filepath, true))

{

// Assign a reference to the existing document body.

Body body = wordprocessingDocument.MainDocumentPart.Document.Body

// Add new text.

Paragraph para = body.AppendChild(new Paragraph())

Run run = para.AppendChild(new Run())

// Apply bold formatting to the run.

RunProperties runProperties = run.AppendChild(new RunProperties(new Bold()))

run.AppendChild(new Text(txt))

}

}

使用 WordprocessingML 表 (Open XML SDK)

public static void InsertTableInDoc(string filepath)

{

// Open a WordprocessingDocument for editing using the filepath.

using (WordprocessingDocument wordprocessingDocument =

WordprocessingDocument.Open(filepath, true))

{

// Assign a reference to the existing document body.

Body body = wordprocessingDocument.MainDocumentPart.Document.Body

// Create a table.

Table tbl = new Table()

// Set the style and width for the table.

TableProperties tableProp = new TableProperties()

TableStyle tableStyle = new TableStyle() { Val = "TableGrid" }

// Make the table width 100% of the page width.

TableWidth tableWidth = new TableWidth() { Width = "5000", Type = TableWidthUnitValues.Pct }

// Apply

tableProp.Append(tableStyle, tableWidth)

tbl.AppendChild(tableProp)

// Add 3 columns to the table.

TableGrid tg = new TableGrid(new GridColumn(), new GridColumn(), new GridColumn())

tbl.AppendChild(tg)

// Create 1 row to the table.

TableRow tr1 = new TableRow()

// Add a cell to each column in the row.

TableCell tc1 = new TableCell(new Paragraph(new Run(new Text("1"))))

TableCell tc2 = new TableCell(new Paragraph(new Run(new Text("2"))))

TableCell tc3 = new TableCell(new Paragraph(new Run(new Text("3"))))

tr1.Append(tc1, tc2, tc3)

// Add row to the table.

tbl.AppendChild(tr1)

// Add the table to the document

body.AppendChild(tbl)

}

}

一、整体效果

        上图是我所做的播放器的效果,比较简单也没有什么特殊的功能。整个播放器大部分都是MediaElement实现的,我自己又添加了选取文件和停止的功能。如图加号是选取一个本地的文件,方块是停止当前播放的文件并重头开始。实现了要求的基本功能:选取一个MP3,MP4文件,实现播放暂停等功能。下面是我作业的链接:

https://github.com/ilike123/player

二、设计过程

        在刚开始做的时候并没有什么头绪,也不知道该用什么实现,首先想到的是用一些button去实现开始暂停等功能,用slide去实现对音量的控制。但是做了一半之后发现这么做超级麻烦,尤其是对音量的控制。于是就想用其他的控件去实现,然后就看到了MediaElement。这是一个非常强大的控件,基本上大部分功能都是由它来实现的。有了一个基本的播放的框架就需要补充其他功能了:选取文件。这基本上是两个最主要的东西了。

①MediaElement  

       一看到MediaElement我是一头雾水的,怎么定义,怎么实现功能都不懂。然后我就去看了微软的文档:

https://msdn.microsoft.com/zh-cn/library/windows/apps/mt187272.aspx

不得不说这是懒人福音,怎么定义怎么实现都已经全部列了出来。所以基本上我就直接用了。

    说到MediaElement就不得不提到AreTransportControlsEnabled了,这是一个神奇的属性,只要设置为True,那么大半个播放器就实现了。什么播放暂停,音量控制都已经帮我实现。一开始我并没有在意这个控件,直到我看见了这篇文章:

https://www.cnblogs.com/MzwCat/p/7858067.html

我发现了同样是用了MediaElement,但是我和它的效果完全不同,然后我就明白了AreTransportControlsEnabled有多么好用。然后的然后我的整个播放器就算大功告成了。不得不说微软官方的文档和空间滋生的属性真的很不错,方便实用。

②开始暂停  

        其实这是一个不算问题的问题。我使用MediaElement之前想着用button去实现功能。基本所有的播放器开始和暂停都是一个按键,所以我也应该用一个按键,那么问题就来了:怎么用一个button实现两个功能。其实很简单,但是困扰了我好久。最蠢的是,我已经想到了用if判断,但我却用i=1,i=0去判断。实际效果就是每次点击button都会重新给i赋值,根本无法判断。后来问舍友才知道直接判断button里的内容就可以了。。。。

三、总结

        首先就是让我知道了微软的文档有多好用,他并不是科普的东西,更像是我们初学的“字典”。还有就是控件本身,选对一个好的控件对于一个应用真的很重要,能节省大量的时间和精力。总之做完这个播放器还是受益匪浅的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7989926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存