本人已参与「新人创作礼」活动,一起开启掘金创作之路。
我自己在学习unity的过程中,用到了在unity运行过程中在word中写入文字的内容,所以整理一下思路,方便之后学习和采用。 首先在unity中的Assets文件夹中创建Plugins文件夹,将NOPI工具包中的.dll拖入这个文件夹即可。然后开始编写程序。 代码如下:
using NPOI.XSSF.UserModel;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Text;
using ICSharpCode.SharpZipLib;
using NPOI.XWPF.UserModel;
using NPOI.OpenXmlFormats.Wordprocessing;
public class Write : MonoBehaviour
{
//初始化程序时调用写文字的函数
private void Start()
{
ReadWord_NPOI();
}
void ReadWord_NPOI()
{
XWPFDocument doc = new XWPFDocument();//声明一个word文件
//打开对应位置的文件
FileStream file = new FileStream("C://Users/Administrator/Desktop/English.docx", FileMode.OpenOrCreate, FileAccess.ReadWrite);
Debug.Log(file.CanWrite);//返回一个bool值,查看是否支持写入
XWPFParagraph p = doc.CreateParagraph();//创建段落
p.Alignment = ParagraphAlignment.CENTER;//设置段落对齐方式(CENTER居中/LEFT左对齐/RIGHT右对齐)
XWPFRun r = p.CreateRun();
//调用函数
Input(r, "0000", "王胖胖", "宋体", 16, false, true);
doc.Write(file);//执行写操作
file.Close();//关闭文件
}
/// <summary>
/// 对文字进行操作
/// </summary>
/// <param name="aRun">段落对象</param>
/// <param name="color">颜色</param>
/// <param name="Nierong">文字内容</param>
/// <param name="zhiti">字体</param>
/// <param name="sizes">字号</param>
/// <param name="isb">是否加粗</param>
/// <param name="isXie">是否斜体</param>
public static void Input(XWPFRun aRun, string color, string Nierong, string zhiti, int sizes, bool isb, bool isXie)
{
aRun.IsBold = isb;
aRun.FontFamily = zhiti;
aRun.FontSize = sizes;
aRun.SetText(Nierong);
aRun.SetColor(color);
aRun.IsItalic = isXie;
}
}
功能使用需求:软件中的一些文件信息,要求用word格式保存,此时,就需要先声明word文件,然后将我们需要存储的数据按word格式写入文件中,然后关闭保存文件,按word要求的后缀格式.doc/.docx进行文件的保存。 运行过程中如果遇到报错,有很大的原因在于忘记写文件关闭的代码,导致文件一直无法完成保存,每一次打开都需要对应一个关闭代码,这一点一定要牢记!