在unity中按一定格式要求在word中写入内容

245 阅读1分钟

本人已参与「新人创作礼」活动,一起开启掘金创作之路。

我自己在学习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进行文件的保存。 运行过程中如果遇到报错,有很大的原因在于忘记写文件关闭的代码,导致文件一直无法完成保存,每一次打开都需要对应一个关闭代码,这一点一定要牢记!