如何在打开的 xml 中将表格对齐到 word 文档的中间?
这是我的代码,我想将表格居中对齐。
这是我的代码。我正在尝试使用 TableJustification,但它似乎不起作用
using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(filepath, WordprocessingDocumentType.Document))
{
MainDocumentPart mainPart = wordDoc.AddMainDocumentPart();
mainPart.Document = new Document();
Body body = mainPart.Document.AppendChild(new Body());
Run run = new Run();
// Goes through all of the forms
foreach (var form in forms)
{
Table table = new Table();
// Initialize all of the table properties
TableProperties tblProp = new TableProperties(
new TableBorders(
new TopBorder() { Val = new EnumValue<BorderValues>(BorderValues.BasicBlackSquares), Size = 16 },
new LeftBorder() { Val …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 OpenXml 中创建此结构:
<P>
<Table />
<Caption>Table 1 - Some Text 1 </Caption>
<Picture />
<Caption>Figure 1 - Some Text 2 </Caption>
</P>
Run Code Online (Sandbox Code Playgroud)
就代码而言,我有:
var currentLine = new Paragraph();
currentLine.AppendChild(new Run(elem)); -> Where the elem is Table
...
currentLine.AppendChild(new Run(elem2)); -> Where the elem2 is Drawing
Run Code Online (Sandbox Code Playgroud)
所以我只怀念添加标题的方式,与我在 MS Word 参考资料 -> 插入标题中可以执行的标题相同。
一些如何实现这一点的信息将非常感激。
锐
我想通过openxml创建一个word文件并在其中插入一个表格。现在我不知道如何设置网格的宽度以适应 word 文件。请帮我。谢谢
我正在尝试遍历 Word 文档并从中提取脚注,并参考它们在段落中的位置。
我不知道该怎么做。
我看到为了获得所有脚注,我可以这样做:
FootnotesPart footnotesPart = doc.MainDocumentPart.FootnotesPart;
if (footnotesPart != null)
{
IEnumerable<Footnote> footnotes = footnotesPart.Footnotes.Elements<Footnote>();
foreach (var footnote in footnotes)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何知道每个脚注在段落中的位置。
例如,我想添加一个脚注,并将它放在之前作为脚注的文本内的括号中。
我该怎么做呢?
我正在使用 OpenXml 处理 Word 文档。现在我的 word 文档 (docx) 宽度标题中有两个表格,现在我需要向这些表格添加动态行。
对于 Paragraph 对象,如何使用 Open XML SDK 2.5 确定它位于哪个页面上?
我已经获得了文档中的所有子元素,并使用 this 获取了内部文本。
foreach (var i in mainPart.Document.ChildElements.FirstOrDefault().ChildElements)
{
ParagraphElements.Add(i); //openxmlelement list
}
Run Code Online (Sandbox Code Playgroud)
我想获取相应段落的页码。例如,我将“这是标题 1”标记为样式标题 1,这将在目录中更新。所以我需要传递页码
提前致谢
我正在使用 .NET 4.6 框架,我必须在 asp.net/c# 代码中阅读多页预定义模板化 excel 工作簿,我知道使用DocumentFormat.OpenXml.dll或Microsoft.Office.Interop.Excel解决问题的两种方法。 dll程序集。
但是我很困惑使用哪个,因为我没有专业知识来决定。我的问题是;在解决方案中使用它们的利弊是什么?有比另一个更好的吗?你能解释一下,让我选一个吗?
在 Word 中有一个选项“更新字段”。我想加载一个 Word 模板并用一些数据填充 FormFields。还有一些字段是对其他字段的引用。
使用 Interop,我可以简单地编写“UpdateAllFields”,但是 OpenXML 中的等价物是什么?
谢谢 :)
我需要在 ASP.NET 控制器方法中将文档作为 MemoryStream 返回以在网页上下载它。我不想把这个文档保存在文件上,然后把它读成 MemoryStream 并返回。注意:重载方法 WordprocessingDocument.CreateFromTemplate(template) 没有流选项 vs WordprocessingDocument.Create(stream, ...)
保存临时文件的解决方案如下。
public static MemoryStream GetWordDocumentFromTemplate()
{
string tempFileName = Path.GetTempFileName();
var templatePath = AppDomain.CurrentDomain.BaseDirectory + @"Controllers\" + templateFileName;
using (var document = WordprocessingDocument.CreateFromTemplate(templatePath))
{
var body = document.MainDocumentPart.Document.Body;
//add some text
Paragraph paraHeader = body.AppendChild(new Paragraph());
Run run = paraHeader.AppendChild(new Run());
run.AppendChild(new Text("This is body text"));
OpenXmlPackage savedDoc = document.SaveAs(tempFileName); // Save result document, not modifying the template
savedDoc.Close(); // can't read if it's open
document.Close();
}
var …
Run Code Online (Sandbox Code Playgroud) 1)
我在想他的目的AbstractNum
是重用编号格式并NumberingInstance
创建新列表(从 1 开始)。但是我注意到的是,如果在 1 处重新启动列表的第二个实例,openxml 文档将具有该AbstractNum
元素的精确副本(唯一的区别是Nsid
)并NumberingInstance
指向该AbstractNum
元素。
例如:如果我有一个列表如下
另一个列表如下,样式完全相同,但从 1 重新开始
这将产生AbstractNum
(具有相同定义)的两个副本和NumberingInstance
. AbstractNum
如果样式相同,重复定义 ( )的目的是什么
2)
如果需要AbstractNum
为每个创建副本NumberingInstance
,有人可以告诉我如何生成Nsid
值(十六进制)。看起来如果你有两个AbstractNum
相同的Nsid
也会导致列表编号的延续(而不是第二个列表从 1 开始)但我不知道如何生成一个唯一的Nsid
openxml ×10
c# ×6
ms-word ×5
openxml-sdk ×3
asp.net ×1
caption ×1
docx ×1
memorystream ×1
tabular ×1