zoukankan      html  css  js  c++  java
  • 小记使用NPOI创建World文档中的问题

    1.创建 XWPFDocument 后 在 Write(fileStream) 时 报 NPOI.OpenXml4Net 未初始化

       查看源码发现 SetText 时保存的都是xml格式,所以当 SetText里面包含了XML特殊字符的时候就会存在这个问题(转义也不行,只能替换)

    string SetTextValue(string text)
    {
    if (string.IsNullOrEmpty(text))
    {
    return "";
    }

    //return SecurityElement.Escape(text);//不行
    return text.Replace("<", "(").Replace(">", ")");
    // return "<![CDATA[" + text + "]]>";
    }

    2.设置标题:通过模板来设置

    //创建新的word文档
    doc = new XWPFDocument();
    var newStyles = doc.CreateStyles();
    using (var templateStream = new MemoryStream(Properties.Resources.template))
    {
    var template = new XWPFDocument(templateStream);
    newStyles.SetStyles(template.GetCTStyle());
    templateStream.Close();
    template.Close();
    }

    //设置标题2

    void GetParagraphOne( string tagname)
    {
    var gp = doc.CreateParagraph();
    gp.Style = "3";
    var gr = gp.CreateRun();

    //gr.GetCTR().AddNewRPr().AddNewRFonts().ascii = "黑体";
    //gr.GetCTR().AddNewRPr().AddNewRFonts().eastAsia = "黑体";
    //gr.GetCTR().AddNewRPr().AddNewRFonts().hint = ST_Hint.eastAsia;
    //gr.GetCTR().AddNewRPr().AddNewSz().val = 21;//5号字体
    //gr.GetCTR().AddNewRPr().AddNewSzCs().val = 21;
    //gr.GetCTR().AddNewRPr().AddNewB().val = true; //加粗
    gr.SetText(SetTextValue(tagname));
    }

    3.页面边距设置:

    //页面设置
    var sectPr = new CT_SectPr();
    sectPr.pgSz.w = 11906;
    sectPr.pgSz.h = 16838;
    sectPr.pgMar.left = (ulong) 400; //左边距
    sectPr.pgMar.right = (ulong) 900; //右边距
    sectPr.pgMar.top = "100";
    sectPr.pgMar.bottom = "100";
    doc.Document.body.sectPr = sectPr;

  • 相关阅读:
    git分布式版本控制(六)
    git分布式版本控制(五)
    git分布式版本控制(四)
    git分布式版本控制(三)
    git分布式版本控制(二)
    git分布式版本控制(一)
    svn版本控制(十)
    svn版本控制(九)
    svn版本控制(八)
    svn版本控制(七)
  • 原文地址:https://www.cnblogs.com/songconglai/p/14857458.html
Copyright © 2011-2022 走看看