Unity中使用NPOI操作Word文档

橘子你个布纳纳 2018-04-20 10:51:51
老哥们,最近需要通过Unity操作一下Word文件,但是使用Com组件总是报错,然后后来在某篇帖子中看到说Unity不支持Com组件(我没验证),遂想直接借用一下第三方的库来操作。
然后经过查询发现Docx和NPOI这两个比较出众,但是我在GitHub上面下载的,emmmmmmm,Docx的不太会用,代码里全是错误,也找不到原因。。。NPOI导出了Net20的版本但是实际操作中有不少的错误。
OfficeManager脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using NPOI.XWPF.UserModel;
using System.IO;

public class OfficeManager
{
#region Instance
private static OfficeManager m_instance;
public static OfficeManager Instance
{
get
{
if (m_instance == null)
{
m_instance = new OfficeManager();
}
return m_instance;
}
}
#endregion

/// <summary>
/// 创建Word文档
/// </summary>
public void CreateWord()
{
FileStream sw = File.Create("d:\\blank.docx");
sw.Position = 0;
XWPFDocument doc = new XWPFDocument(sw); //错误行
doc.CreateParagraph();
}
}


Test脚本(场景中挂载):


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

public class Test : MonoBehaviour {

// Use this for initialization
void Start () {
OfficeManager.Instance.CreateWord();
}

// Update is called once per frame
void Update () {

}
}


Error:
ZipException: EOF in header
ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputBuffer.ReadLeByte ()
ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputBuffer.ReadLeShort ()
ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputBuffer.ReadLeInt ()
ICSharpCode.SharpZipLib.Zip.ZipInputStream.GetNextEntry ()
(wrapper remoting-invoke-with-check) ICSharpCode.SharpZipLib.Zip.ZipInputStream:GetNextEntry ()
NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource..ctor (ICSharpCode.SharpZipLib.Zip.ZipInputStream inp)
NPOI.OpenXml4Net.OPC.ZipPackage..ctor (System.IO.Stream filestream, PackageAccess access)
NPOI.OpenXml4Net.OPC.OPCPackage.Open (System.IO.Stream in1)
NPOI.Util.PackageHelper.Open (System.IO.Stream is1)
NPOI.XWPF.UserModel.XWPFDocument..ctor (System.IO.Stream is1)
OfficeManager.CreateWord () (at Assets/Scripts/Manager/OfficeManager.cs:31)
Test.Start () (at Assets/Test.cs:9)

...全文
1962 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
沫雨忧 2018-10-31
  • 打赏
  • 举报
回复
把.net框架换成框架换成4以上,https://download.csdn.net/download/qq_41001564/10754674里的文件放到Plugins里
小数点666 2018-04-24
  • 打赏
  • 举报
回复
找ICSharpCode.SharpZipLib这个库 看看这个库的版本和你的对应不
  • 打赏
  • 举报
回复
顶一下。。。

2,538

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧