小记使用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;
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号