资源简介
NPOI创建DOCX常用操作,网上一直没有什么可用的例子供大家参考。我特意写了这个帮助类,亲测可用。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Office.Interop.Word;
using System.IO;
using NPOI.HSSF;
using NPOI.XWPF;
using NPOI.XWPF.Extractor;
using NPOI.XWPF.Model;
using NPOI.XWPF.UserModel;
using NPOI.Openxml4Net.OPC;
using NPOI.OpenxmlFormats.Dml.WordProcessing;
using NPOI.OpenxmlFormats.Dml;
using NPOI.OpenxmlFormats.Wordprocessing;
using System.xml;
using System.Drawing;
namespace LiuZhangXi.Common.Helpers
{
public class WordOperation
{
public void Page_Load()
{
//图片位置
String m_PicPath = @“G:\LiuZhangXiTest\LiuZhangXiSolution\LiuZhangXi.Web\Images\573e8bd7N53fccf7c.jpg“;
FileStream gfs = null;
MemoryStream ms = new MemoryStream();
XWPFDocument m_Docx = new XWPFDocument();
//页面设置
//A4:W=11906h=16838
m_Docx.Document.body.sectPr = new CT_SectPr();
CT_SectPr m_SectPr = m_Docx.Document.body.sectPr;
//页面设置A4纵向
m_SectPr.pgSz.h = (ulong)16838;
m_SectPr.pgSz.w = (ulong)11906;
XWPFParagraph gp = m_Docx.CreateParagraph();
XWPFRun 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 = (ulong)44;//2号字体
gr.GetCTR().AddNewRPr().AddNewSzCs().val = (ulong)44;
gr.GetCTR().AddNewRPr().AddNewB().val = true; //加粗
gr.GetCTR().AddNewRPr().AddNewColor().val = “red“;//字体颜色
gr.SetText(“北京国安拿下中超半程冠军,不上U23球员大伙都变强了“);
gp = m_Docx.CreateParagraph();
gp.IndentationFirstLine = 15;
gr = gp.CreateRun();
CT_RPr rpr = gr.GetCTR().AddNewRPr();
CT_Fonts rfonts = rpr.AddNewRFonts();
rfonts.ascii = “宋体“;
rfonts.eastAsia = “宋体“;
rpr.AddNewSz().val = (ulong)21;//5号字体
rpr.AddNewSzCs().val = (ulong)21;
gr.SetText(“8月1日和2日,2018赛季中超联赛迎来第十五轮赛事,由于U23(23岁以下)国足已经为备战亚运会在苏州集结,因此,此前一直实行的U23政策有所调整。“);
//创建表
XWPFTable table = m_Docx.CreateTable(1 4);//创建一行4列表
CT_Tbl m_CTTbl = m_Docx.Document.body.GetTblArray()[0];//获得文档第一张表
CT_TblPr m_CTTblPr = m_CTTbl.AddNewTblPr();
m_CTTblPr.AddNewTblW().w = “2000“; //表宽
m_CTTblPr.AddNewTblW().type = ST_TblWidth.dxa;
m_CTTblPr.tblpPr = new CT_TblPPr();//表定位
m_CTTblPr.tblpPr.tblpX = “4003“;//表左上角坐标
m_CTTblPr.tblpPr.tblpY = “365“;
m_CTTblPr.tblpPr.tblpXSpec = ST_XAlign.center;//若不为“Null”,则优先tblpX,即表由tblpXSpec定位
m_CTTblPr.tblpPr.tblpYSpec = ST_YAlign.center;//若不为“Null”,则优先tblpY,即表由tblpYSpec定位
评论
共有 条评论