当前位置:网站首页>Unity-写入Word

Unity-写入Word

2022-07-04 07:43:00 小太阳每天都要很努力

代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using System.IO;
using NPOI.XWPF.UserModel;

using ICSharpCode.SharpZipLib.Zip;
using NPOI.OpenXmlFormats.Wordprocessing;

public class wordRead : MonoBehaviour
{
    
    private void Start()
    {
        //打开一个文件,如果没有则创建,并设置访问权限
        XWPFDocument doc = new XWPFDocument();
        FileStream file = new FileStream("D://liuyu.docx", FileMode.OpenOrCreate, FileAccess.ReadWrite);
        Debug.Log(file.CanWrite);//查看是否支持写入
        //创建段落,设置段落对齐方式
        XWPFParagraph p2 = doc.CreateParagraph();
        XWPFParagraph p3 = doc.CreateParagraph();
        p2.Alignment = ParagraphAlignment.CENTER;
        //插入一行
        XWPFRun r2 = p2.CreateRun();
        SetFont(r2, "000000", "shiyanbaogao", "宋体", 16, false, true);
        //插入一张照片
        p3.Alignment = ParagraphAlignment.CENTER;
        XWPFRun r6 = p3.CreateRun();
        SetTu(r6, 200, 200, "qq");//插入一张图片

        XWPFTable table = doc.CreateTable(1, 4);//创建1*4的表
        
        table.SetColumnWidth(0, 6*256);
        table.SetColumnWidth(1, 10*256);
        table.SetColumnWidth(2, 6*256);
        table.SetColumnWidth(3, 10*256);


        table.GetRow(0).GetCell(0).SetText("11111");
        table.GetRow(0).GetCell(0).SetColor("00FFFF");
        table.GetRow(0).GetCell(1).SetText("11111");
        table.GetRow(0).GetCell(2).SetText("11111");
        table.GetRow(0).GetCell(3).SetText("11111");
        table.GetRow(0).GetCell(3).SetColor("00FFFF");


        doc.Write(file);
        file.Close();
        System.Diagnostics.Process.Start("D://liuyu.docx");

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

    /// <summary>
    /// 加载图片并设计
    /// </summary>
    /// <param name="r2">段落对象</param>
    /// <param name="sizeX">X的值</param>
    /// <param name="sizeY">Y的值</param>
    /// <param name="TuName">图片名称</param>
    public static void SetTu(XWPFRun r2,float sizeX,float sizeY,string TuName)
    {
        //插入图片
        var widthEmus = (int)(sizeX*9525);
        var heightEmus = (int)(sizeY * 9525);
        try
        {
        //using(FileStream picData=new FileStream("D://user/" + TuName + ".png", FileMode.Open, FileAccess.Read))
          using (FileStream picData = new FileStream("E://UnityProgramme/word/" + TuName + ".png", FileMode.Open, FileAccess.Read))
            {
                r2.AddPicture(picData, (int)PictureType.PNG ,TuName+".png", widthEmus, heightEmus);
                Debug.Log("png");
            }
        }
        catch
        {
            try
            {
                // using (FileStream picData = new FileStream("D://user/" + TuName + ".jpg", FileMode.Open, FileAccess.Read))
                using (FileStream picData = new FileStream("E://UnityProgramme/word/" + TuName + ".jpeg", FileMode.Open, FileAccess.Read))
                {
                    r2.AddPicture(picData, (int)PictureType.JPEG, TuName + ".jpeg", widthEmus, heightEmus);
                    Debug.Log("jpeg");//两种都可以
                }
                Debug.Log("PNG没找到JPG"+TuName);
            }
            catch
            {

            }
        }
    }



}


参考

我叫玉强

原网站

版权声明
本文为[小太阳每天都要很努力]所创,转载请带上原文链接,感谢
https://clara2521.blog.csdn.net/article/details/125575839