做开发的人都知道在项目开发中操作word导出很麻烦,大家都想尽可能使用开源工具。

小编简单分析了一下,大家现在整理三种方法以供参考。

首先,使用jquery.wordex

首先引用三个文件。jquery.wordex依赖于jquery和FileSaver.js

脚本src=';/脚本

脚本src=';/脚本

script src=' https://github . com/markswindoll/jquery-word-export/blob/master/jquery . wordex

方法调用:

div id=' content '要将word导出到的html内容/div

button onclick=' exportword ' word/button导出

脚本(脚本)

Function exportword(){

$('#content ')。word export(“word标题”);

}

/脚本

超级简单吗?

第二,使用Do通过直接操作生成word

首先,将nuget Do添加到项目中

提供封装的类:n

Using NPOI。o;

Using NPOI。XWPF . UserModel

Using System

Using Sy

namespace Tian feng . framework core

{

///摘要

///NPOI操作Word

////摘要

Public class NpoiWordHelper

{

///摘要

///创建文档

////摘要

///param name='setting'/param

Public static void export document(设置文档设置)

{

xwpfdocumentdocx=new xwpfdocument();

memory stream ms=new memory stream();

//设置文档

docx . document . body . Sect pr=newct _ sec TPR();

CT _ Sect pr set pr=docx . document . body . Sect pr;

//获取页面大小

Tupleint,int size=get papersize);

=(ulong;

=(ulong;

//创建段落

CT _ p p=docx . document . body . add newp();

//段落水平居中

P.addnewppr()。addnewjc()。val=ST _ jc.center

xwpfparagraph gp=new xwpfparagraph(p,docx);

XWPFRun gr=gp。create run();

//创建标题

If(!))

{

Gr.getctr()。addnewrpr()。addnewrfonts()。ascii=;

Gr.getctr()。addnewrpr()。addnewrfonts()。EASTASIA=;

Gr.getctr()。addnewrpr()。addnewrfonts()。hint=ST _ hint.eastasia

Gr.getctr()。addnewrpr()。add newsz()。val=(ulong;//2字体

Gr.getctr()。addnewrpr()。addnewszcs()。val=(ulong;

Gr.GetC

TR().AddNewRPr().AddNewB().val = ; //加粗

gr.GetCTR().AddNewRPr().AddNewColor().val = "black";//字体颜色

gr.SetText);

}

//创建文档主要内容

if (!))

{

p = docx.Document.body.AddNewP();

p.AddNewPPr().AddNewJc().val = ST_Jc.both;

gp = new XWPFParagraph(p, docx)

{

IndentationFirstLine = 2

};

//单倍为默认值(240)不需设置,1.5倍=240X1.5=360,2倍=240X2=480

p.AddNewPPr().AddNewSpacing().line = "400";//固定20磅

p.AddNewPPr().AddNewSpacing().lineRule = ST_LineS;

gr = gp.CreateRun();

CT_RPr rpr = gr.GetCTR().AddNewRPr();

CT_Fonts rfonts = r();

r = ;

r = ;

r().val = (ulong;//5号字体-21

rCs().val = (ulong;

r().val = ;

gr.SetText);

//// 创建表格对象列数写死了,可根据自己需要改进或者自己想想解决方案

//XWPFTable table = docx.CreateTable(), 4);

//for (int i = 0; i < li(); i++)

//{

// (i).GetCell(0).SetText(list[i].Id.ToString());

// (i).GetCell(1).SetText(list[i].Title);

// (i).GetCell(2).SetText(list[i].Content);

// (i).GetCell(3).SetText(list[i].AddTime);

//}

}

//开始写入

docx.Write(ms);

using (FileStream fs = new FileStream, FileMode.Create, FileAcce))

{

byte[] data = ms.ToArray();

(data, 0, da);

();

}

ms.Close();

}

/// <summary>

/// 设置文档

/// </summary>

public class DocumentSetting

{

/// <summary>

/// 文档类型,默认为A4纵向

/// </summary>

public PaperType PaperType { get; set; } = Pa;

/// <summary>

/// 保存地址,包含文件名

/// </summary>

public string SavePath { get; set; }

/// <summary>

/// 文档标题相关

/// </summary>

public ContentItemSetting TitleSetting { get; set; }

/// <summary>

/// 文档主要内容

/// </summary>

public ContentItemSetting MainContentSetting { get; set; }

}

/// <summary>

/// 文档内容相关

/// </summary>

public class ContentItemSetting

{

/// <summary>

/// 标题

/// </summary>

public string Title { get; set; }

/// <summary>

/// 主要内容

/// </summary>

public string MainContent { get; set; }

/// <summary>

/// 使用字体

/// </summary>

public string FontName { get; set; } = "宋体";

/// <summary>

/// 字体大小,默认2号字体

/// </summary>

public int FontSize { get; set; } = 44;

/// <summary>

/// 是否加粗,默认不加粗

/// </summary>

public bool HasBold { get; set; } = false;

}

/// <summary>

/// 纸张类型

/// </summary>

public enum PaperType

{

/// <summary>

/// A4纵向

/// </summary>

A4_V,

/// <summary>

/// A4横向

/// </summary>

A4_H,

/// <summary>

/// A5纵向

/// </summary>

A5_V,

/// <summary>

/// A5横向

/// </summary>

A5_H,

/// <summary>

/// A6纵向

/// </summary>

A6_V,

/// <summary>

/// A6横向

/// </summary>

A6_H

}

#region 私有方法

/// <summary>

/// 获取纸张大小,单位:Twip

/// <para>换算关系:1英寸=1440缇 1厘米=567缇 1磅=20缇 1像素=15缇</para>

/// </summary>

/// <param name="type"></param>

/// <returns></returns>

private static Tuple<int, int> GetPaperSize(PaperType type)

{

Tuple<int, int> res = null;

switch (type)

{

case Pa:

res = new Tuple<int, int>(11906, 16838);

break;

case Pa:

res = new Tuple<int, int>(16838, 11906);

break;

case Pa:

res = new Tuple<int, int>(8390, 11906);

break;

case Pa:

res = new Tuple<int, int>(11906, 8390);

break;

case Pa:

res = new Tuple<int, int>(5953, 8390);

break;

case Pa:

res = new Tuple<int, int>(8390, 5953);

break;

}

return res;

}

#endregion

}

}


调用方法:

N(

new DocumentSetting

{

PaperType = Pa,

SavePath="word标题.docx",

TitleSetting=new ContentItemSetting

{

Title="我的word标题",

FontSize=44,

HasBold=true,

FontName="宋体"

},

MainContentSetting = new ContentItemSetting

{

MainContent= "这里是word内容这里是word内容这里是word内容这里是word内容这里是word内容",

FontSize = 14,

FontName = "宋体"

}

}

);

是不是一样很简单,但有个遗憾,这个封装的类不支持插入表格、图片,需要的还请大家自行扩展。

三、使用a

这个是第三方的,未开源,要有license不然会有水印,巧的是在nuget上发一个破解的。。大家偷偷用就好。



调用方法:

A doc = new A();

ABuilder builder = new ABuilder(doc);

builder.InsertHtml("html内容");

doc.Save("word.docx", A);

这个使用应该来说是最后简单,强烈推荐,A同时可以进行转pdf,等文件的互转,功能非常强大。其他功能,大家自行研究吧。


1.《【怎么把网页转到word上】.如何将net core HTML密钥导出到word》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【怎么把网页转到word上】.如何将net core HTML密钥导出到word》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2515474.html