C# 将样式应用于文档

C# 将样式应用于文档,c#,openxml,openxml-sdk,C#,Openxml,Openxml Sdk,如何将样式应用于像“CSS”这样的文档,但要使用OpenXML编程? 我不想将样式应用于单个元素,但要设置默认值并使文档部分遵守它们 我已经找到了htmltopenxml,但我更愿意自己做这件事。任何帮助都将不胜感激。解决了它,只需使用OpenXML生产力工具,找到您要查找的部件的名称。或者,只需打开文档并确定要更改的内容,如标题、a部分或普通 以下是更改示例的代码: public static void GetAndSetStyleFromDoc(string file) {

如何将样式应用于像“CSS”这样的文档,但要使用OpenXML编程? 我不想将样式应用于单个元素,但要设置默认值并使文档部分遵守它们


我已经找到了htmltopenxml,但我更愿意自己做这件事。任何帮助都将不胜感激。

解决了它,只需使用OpenXML生产力工具,找到您要查找的部件的名称。或者,只需打开文档并确定要更改的内容,如标题、a部分或普通

以下是更改示例的代码:

public static void GetAndSetStyleFromDoc(string file)
{
            bool styleExists = true;

            using (var document = WordprocessingDocument.Open(file,true))
            {

                // Get the Styles part for this document
                StyleDefinitionsPart part = document.MainDocumentPart.StyleDefinitionsPart;

                foreach (Style style in part.RootElement.Elements<Style>())
                {
                    // PartA can be changed for "Normal", "Header1" etc
                    if (style.StyleId.Value.Equals("PartA", StringComparison.InvariantCultureIgnoreCase))
                    {
                        style.StyleParagraphProperties.SpacingBetweenLines.Line = "276";
                        style.StyleRunProperties.FontSize.Val = "14";
                        style.StyleRunProperties.Color.Val = "4F81BD"; // font color

                        ParagraphBorders paragraphBorders1 = new ParagraphBorders();
                        TopBorder topBorder1 = new TopBorder(){ Val = BorderValues.Single, Color = "856363", Size = (UInt32Value)24U, Space = (UInt32Value)0U };
                        LeftBorder leftBorder1 = new LeftBorder(){ Val = BorderValues.Single, Color = "856363", Size = (UInt32Value)24U, Space = (UInt32Value)0U };
                        BottomBorder bottomBorder1 = new BottomBorder(){ Val = BorderValues.Single, Color = "856363", Size = (UInt32Value)24U, Space = (UInt32Value)0U };
                        RightBorder rightBorder1 = new RightBorder(){ Val = BorderValues.Single, Color = "856363", Size = (UInt32Value)24U, Space = (UInt32Value)0U };

                        paragraphBorders1.Append(topBorder1);
                        paragraphBorders1.Append(leftBorder1);
                        paragraphBorders1.Append(bottomBorder1);
                        paragraphBorders1.Append(rightBorder1);

                        style.StyleParagraphProperties.ParagraphBorders = paragraphBorders1;
                    }
                }

            }
}
publicstaticvoid GetAndSetStyleFromDoc(字符串文件)
{
bool-styleExists=true;
使用(var document=WordprocessingDocument.Open(file,true))
{
//获取此文档的样式部分
StyleDefinitionsPart部分=document.MainDocumentPart.StyleDefinitionsPart;
foreach(part.RootElement.Elements()中的样式)
{
//零件A可以更改为“正常”、“头1”等
if(style.StyleId.Value.Equals(“PartA”,StringComparison.InvariantCultureIgnoreCase))
{
style.StyleParagraphProperties.SpacingBetweenLines.Line=“276”;
style.StyleRunProperties.FontSize.Val=“14”;
style.StyleRunProperties.Color.Val=“4F81BD”;//字体颜色
ParagraphBorders paragraphBorders1=新的ParagraphBorders();
TopBorder topBorder1=new TopBorder(){Val=BorderValues.Single,Color=“856363”,Size=(UInt32Value)24U,Space=(UInt32Value)0U};
LeftBorder leftBorder1=新的LeftBorder(){Val=BorderValues.Single,Color=“856363”,Size=(UInt32Value)24U,Space=(UInt32Value)0U};
BottomBottomBorder1=新的bottomBorder1(){Val=BorderValues.Single,Color=“856363”,Size=(UInt32Value)24U,Space=(UInt32Value)0U};
RightBorder rightBorder1=new RightBorder(){Val=BorderValues.Single,Color=“856363”,Size=(UInt32Value)24U,Space=(UInt32Value)0U};
第1段。附加(顶部边界1);
段落边界1.追加(左边界1);
第1段。附加(底部边界1);
第1段:追加(右边界1);
style.StyleParagraphProperties.ParagraphBorders=paragraphBorders1;
}
}
}
}