Unity使用NPOI库操作Word文件

这篇具有很好参考价值的文章主要介绍了Unity使用NPOI库操作Word文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Unity使用NPOI库操作Word文件

1、导入NPOI库的DLL

链接:https://pan.baidu.com/s/1O29nSZdBsNM8hP_f6-bH1A?pwd=6666
提取码:6666
–来自百度网盘超级会员V4的分享
2、将类库文件导入到Plugins文件夹目录下,类库文件要放在Plugins文件夹里面才能在C#引用
unity 使用npoi插件读取word的文档如何进行排版,unity知识点,unity,word,c#
3、设置.NET版本,如果不是4.x可能会出现不兼容的问题,这个不一定,看自己情况
unity 使用npoi插件读取word的文档如何进行排版,unity知识点,unity,word,c#
4、代码创建Word文档,并写入文字,然后打开Word文档

/*****************************************************************
*Copyright(C) 2019 by #COMPANY# 
 *All rights reserved. 
 *FileName:#SCRIPTFULLNAME# 
 *Author:#AUTHOR#
 *Version:#VERSION# 
 *UnityVersion:#UNITYVERSION#
 *Date:#DATE# 
 *Description:    
 *History:
*******************************************************************/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using NPOI.XWPF.UserModel;
namespace Zhen
{
    public class ExportWordScript : MonoBehaviour
    {
        /// <summary>
        /// 创建Word并写入文字
        /// </summary>
        public static void CreateWordAndWrite()
        {
            //打开一个文件,如果没有则创建,并设置访问权限
            XWPFDocument document = new XWPFDocument();
            FileStream file = new FileStream("C:\\Users\\Administrator\\Desktop\\吊装方案.docx", FileMode.OpenOrCreate, FileAccess.ReadWrite);

            //创建段落,设置段落对齐方式等操作
            //创建标题
            XWPFParagraph titlePar = document.CreateParagraph();
            // 设置标题居中对齐
            titlePar.Alignment = ParagraphAlignment.CENTER;
            //插入一行
            XWPFRun titleR = titlePar.CreateRun();
            SetFont(titleR, "000000", "吊装方案", "微软雅黑", 18, true, false);

            //创建第一行介绍
            XWPFParagraph par1 = document.CreateParagraph();
            // 设置段落的首行缩进  
            par1.IndentationFirstLine = 600;
            //插入一行
            XWPFRun parR1 = par1.CreateRun();
            SetFont(parR1, "000000", "依托工程设计成果,导入标准数字化移交的模型数据,搭建铁塔组立施工三维仿真场景。软件具有碰撞检测、安全距离校验、超重预警、参数化控制、吊装过程模拟等功能,通过铁塔组立方案的模拟和辅助设计,最终实现专业化、标准化的铁塔组装施工方案。", "微软雅黑", 14, false, false);

            //接下来是其他行文字的添加
            //创建第一行介绍
            XWPFParagraph par2 = document.CreateParagraph();
            // 设置段落的首行缩进  
            par2.IndentationFirstLine = 600;
            //插入一行
            XWPFRun parR2 = par2.CreateRun();
            SetFont(parR2, "000000", "吊装方案如下:", "微软雅黑", 14, false, false);

            document.Write(file);
            file.Close();
        }

        /// <summary>
        /// 打开Word
        /// </summary>
        public static void OpenWord()
        {
            System.Diagnostics.Process.Start("C:\\Users\\Administrator\\Desktop\\吊装方案.docx");
        }

        /// <summary>
        /// 对文字进行操作
        /// </summary>
        /// <param name="run">段落对象</param>
        /// <param name="color">颜色</param>
        /// <param name="text">文字内容</param>
        /// <param name="font">字体</param>
        /// <param name="size">字号</param>
        /// <param name="isOverBold">是否加粗</param>
        /// <param name="isItalic">是否斜体</param>
        public static void SetFont(XWPFRun run, string color, string text, string font, int size, bool isOverBold, bool isItalic)
        {
            run.SetColor(color);
            run.SetText(text);
            run.FontFamily = font;
            run.FontSize = size;
            run.IsBold = isOverBold;
            run.IsItalic = isItalic;
        }
    }
}

5、调用:

ExportWordScript.CreateWordAndWrite();
ExportWordScript.OpenWord();

6、效果如下:
unity 使用npoi插件读取word的文档如何进行排版,unity知识点,unity,word,c#
7、以下是NPOI库中一些常用操作Word的属性和方法的示例:

7.1、创建文档和段落

XWPFDocument doc = new XWPFDocument(); // 创建新的Word文档  
XWPFParagraph p = doc.CreateParagraph(); // 创建新的段落

7.2、设置段落文本

XWPFRun r = p.CreateRun(); // 创建段落中的运行对象  
r.SetText("这是段落文本"); // 设置运行对象的文本内容

7.3、设置段落样式

p.Alignment = ParagraphAlignment.CENTER; // 设置段落的对齐方式为居中

7.4、设置字体样式

r.IsBold = true; // 设置文本为加粗  
r.FontSize = 16; // 设置字体大小为16  
r.SetFontFamily("宋体"); // 设置字体为宋体

7.5、添加表格

XWPFTable table = doc.CreateTable(3, 3); // 创建一个3行3列的表格  
for (int row = 0; row < 3; row++)  
{  
    for (int col = 0; col < 3; col++)  
    {  
        XWPFTableCell cell = table.GetRow(row).GetCell(col); // 获取表格单元格  
        cell.SetText("行" + (row + 1) + ",列" + (col + 1)); // 设置单元格文本  
    }  
}

7.6、保存文档

using (FileStream fs = new FileStream("example.docx", FileMode.Create, FileAccess.Write))  
{  
    doc.Write(fs); // 将文档写入文件流并保存为example.docx  
}

7.7、插入图片

//这段代码将在段落中插入一张图片。需要注意的是,你需要提供图片的路径以及图片的格式。
string imgPath = "path/to/image.jpg"; // 图片路径  
XWPFRun run = p.CreateRun();  
int format = doc.AddPictureData(File.ReadAllBytes(imgPath), PictureType.JPEG);  
run.AddPicture(new byte[] { format }, PictureType.JPEG, imgPath, Units.ToEMU(200), Units.ToEMU(200)); // 200x200像素大小

7.8、设置段落间距

//你可以使用SpacingAfter和SpacingBefore属性来设置段落之间的间距。
p.SpacingAfter = 20; // 设置段落之后的间距为20点  
p.SpacingBefore = 20; // 设置段落之前的间距为20点

7.9、添加页眉和页脚

//这段代码将创建一个页眉,并设置其文本为“这是页眉”。你可以使用类似的方法创建和设置页脚。
XWPFHeaderFooterPolicy policy = doc.GetHeaderFooterPolicy();  
if (policy == null)  
{  
    policy = doc.CreateHeaderFooterPolicy(); // 创建页眉页脚策略  
}  
XWPFHeader header = policy.CreateHeader(XWPFHeaderFooterPolicy.DEFAULT); // 创建页眉  
XWPFParagraph headerParagraph = header.CreateParagraph(); // 在页眉中创建段落  
XWPFRun headerRun = headerParagraph.CreateRun();  
headerRun.SetText("这是页眉"); // 设置页眉文本

7.10、添加超链接

//这段代码将在段落中创建一个指向"http://www.example.com"的超链接。点击该链接将跳转到指定的网址。
XWPFRun run = p.CreateRun();  
run.SetText("点击这里访问网站"); // 设置运行对象的文本内容  
run.AddHyperlink("http://www.example.com"); // 添加超链接

当然,还有一些其他关于NPOI操作Word的高级功能示例:
7.11、插入列表

//这将创建一个带有项目符号的列表项。你可以通过更改NumberingType来创建不同类型的列表。
XWPFParagraph p = doc.CreateParagraph();  
p.Style = doc.CreateStyle();  
p.Style.NumberingFormat = new XWPFNumberingFormat();  
p.Style.NumberingFormat.NumberingType = NumberingType.BULLET; // 或者 NumberingType.DECIMAL for numbered lists  
XWPFRun r = p.CreateRun();  
r.SetText("List Item");

7.12、插入和修改表格中的行和单元格

//你可以使用上述代码创建表格,并向其中添加行和单元格。
XWPFTable table = doc.CreateTable(); // 创建表格  
XWPFTableRow row = table.CreateRow(); // 创建行  
XWPFTableCell cell = row.CreateCell(); // 创建单元格  
cell.SetText("单元格文本"); // 设置单元格文本

7.13、使用模板,如果你有一个现有的Word文档作为模板,你可以使用NPOI加载并修改它。

XWPFDocument doc = new XWPFDocument(File.OpenRead("template.docx")); // 从现有模板加载文档  
foreach (XWPFParagraph paragraph in doc.Paragraphs)  
{  
    if (paragraph.Text.Contains("placeholder")) // 查找特定文本  
    {  
        paragraph.ReplaceText("placeholder", "替换文本"); // 替换文本  
    }  
}

7.14、保存为流,除了保存到文件,你还可以将Word文档保存为流。

//这对于在Web应用程序中生成并发送Word文档非常有用,你可以直接将字节流发送给客户端。
MemoryStream ms = new MemoryStream();  
doc.Write(ms);  
byte[] wordDocumentBytes = ms.ToArray();

这些示例可以帮助你更全面地了解NPOI库操作Word文档的功能。使用这些属性和方法,你可以创建、编辑和格式化Word文档,以满足不同的需求。记得在使用NPOI库时,要引用正确的命名空间,并确保已正确安装和引用NPOI库的相关依赖项。
8、测试直接修改Word模版的文字,修改本地文档内容
8.1、创建一个本地的Word文档,这里的路径一定要和Unity里面的路径保持一致
unity 使用npoi插件读取word的文档如何进行排版,unity知识点,unity,word,c#

/// <summary>
        /// Word模板路径
        /// </summary>
        private static string path = "Assets\\StreamingAssets\\吊装方案\\吊装方案.docx";

        /// <summary>
        /// 更改后的文件路径
        /// P.S. 当然可以直接修改模板文件,这里另外生成文件是个人为了方便测试。
        /// </summary>
        private static string targetPath = "C:\\Users\\Administrator\\Desktop\\吊装方案.docx";

unity 使用npoi插件读取word的文档如何进行排版,unity知识点,unity,word,c#

8.2、代码替换如下:

 /// <summary>
        /// 修改文件
        /// </summary>
        public static void ReadWriteFile()
        {
            FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
            XWPFDocument doc = new XWPFDocument(fs);

            //遍历段落
            foreach (var para in doc.Paragraphs)
            {
                string oldText = para.ParagraphText;
                if (oldText == "")
                {
                    continue;
                }
                //记录段落文本
                string tempText = para.ParagraphText;
                //查找标记并修改内容
                if (tempText.Contains("$日期$"))
                {
                    tempText = tempText.Replace("$日期$", (DateTime.Now).ToString());
                }
                //替换内容
                para.ReplaceText(oldText, tempText);
            }

            //生成指定文件
            FileStream output = new FileStream(targetPath, FileMode.Create);
            //将文档信息写入文件
            doc.Write(output);
            fs.Close();
            fs.Dispose();
            output.Close();
            output.Dispose();

            Debug.Log("修改文件成功!");
            System.Diagnostics.Process.Start(targetPath);//打开指定文件
        }   

8.3、结果如下:
unity 使用npoi插件读取word的文档如何进行排版,unity知识点,unity,word,c#
9、打完收工。文章来源地址https://www.toymoban.com/news/detail-843761.html

到了这里,关于Unity使用NPOI库操作Word文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#【必备技能篇】使用NPOI实现对excel的读取和写入

    依次执行下图中的1-6按钮 , 可以通过查看程序文件夹中的excel文件来加深理解。 链接:https://pan.baidu.com/s/19PgQMhCKviw9aBAjmJHSww 提取码:2omi 需要在源码中增加如下引用。相应的dll已更新到 5 的下载地址中。

    2023年04月13日
    浏览(41)
  • 【工具插件类教学】NPOI插件使用Excel表格的导入和导出(包含图片)

    目录 一.导入Excel 解析读取 1.选择导入的目标文件 2.解析读取导入的文件

    2024年01月16日
    浏览(53)
  • C# 使用NPOI操作EXCEL

    1.添加NOPI         引用-管理NuGet程序包-添加NOPI 2.相关程序集 3.添加命名空间 4.从Excel导入的dgv样例 5.从dgv导入到Excel

    2024年02月11日
    浏览(58)
  • NPOI 读取和写入Excel

    在C#中使用NPOI库读取和写入Excel文件,你需要先下载并安装NPOI库。你可以在NuGet管理器中搜索NPOI并进行安装。 以下是一个使用NPOI库进行Excel文件读取和写入的示例: 读取Excel文件: 写入Excel文件: 请注意,在使用NPOI时,记得引入必要的命名空间: NPOI.SS.UserModel 和 NPOI.XSSF.

    2024年02月12日
    浏览(87)
  • Unity用NPOI创建Exect表,保存数据,和修改删除数据。以及打包后的坑——无法打开新创建的Exect表

    先说坑花了一下午才找到解决方法解决, 在Unity编辑模式下点击物体创建对应的表,获取物体名字与在InputText填写的注释数据。然后保存。创建Exect表可以打开,打包PC后, 点击物体创建的表, 打不开文件破损 解决方法: 到unity编辑器所在路径中去找这个路径 EditorDataMon

    2024年02月12日
    浏览(53)
  • NPOI操作Excel

    名词介绍: 整个Excel:工作薄 Sheet页:页签,一个工作簿中可以包含多个Sheet页 表格:对应一个Sheet 行、列、单元格 C#中的常规操作: 导出一个Excel:其实就是要生成一个Excel文件,Excel文件对应的文件流 导入一个Excel:读取一个文件,读取文件流,需要从文件流中读取我们需要

    2024年02月12日
    浏览(43)
  • C# NPOI操作Excel汇总

    C#操作Excel有多种方法,如通过数据库的方式来读写Excel的OleDb方式,但是OleDb方式需要安装微软office,还可以通过COM组件方式操作Excel,也需要安装微软Excel。如果不想安装微软办公套餐可以使用ClosedXML、EPPlus、NPOI。本文主要是介绍NPOI的常用使用方法。 Apache POI是Apache软件基金

    2024年02月12日
    浏览(47)
  • 【工具插件类教学】Unity通过Aspose读取并显示打开PDF,PPT,Excel,Word

    目录 一、获取Aspose支持.Net的DLL 二、导入Unity的Plugin文件夹 三、分别编写四种文件的读取显示

    2024年02月02日
    浏览(60)
  • 使用NPOI修改Excel数据

    需求:格式为exp的文件,具有json结构,替换掉其中某些数据 解决方法:读取excel,用npoi读取指定内容,在exp中找到特定结构,然后替换 读取其他格式的文件也是用此方法

    2024年02月08日
    浏览(40)
  • 使用NPOI做Excel简单报表

    前言 前面介绍了NPOI单元格样式的使用、单元格合并,以及NPOI提供的颜色。现在用上前面的一些知识点,做一个测试结果表格。 1、 介绍NPOI 的颜色卡、名称以及索引 https://editor.csdn.net/md/?articleId=130265415 2、 NPOI的CellStyle单元格样式 https://editor.csdn.net/md/?articleId=130245869 3、 将

    2023年04月22日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包