本文为原创,转载请注明出处

1.前言

.net平台下导出word文件还可以使用Microsoft.Office.Interop和NPOI,但是这两者都有缺点,微软的Office.Interop组件需要程序运行的主机上安装office,至于NPOI,由于长期无人维护,BUG众多,各种对象和属性名的命名也十分混乱,不易读懂,在使用上带来一定的难度,因此为了规避这两者的缺点,目前最佳的选择是使用AsposeWord这个组件来导出word文件。

2.说明

下面是使用AsposeWord导出word表格的例子(源码在文末),其中AsposeWordHelper是对AsposeWord的使用方法进行了很简单的封装,读者熟悉其用法之后可以按照自己的习惯自行封装。

3.最终效果

4.使用方法简介

(1)创建Document对象并得到DocumentBuilder,向文档中添加内容主要使用它

 //创建文件对象
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

(2)设置段落格式:通过DocumentBuilder对象得到ParagraphFormat,使用ParagraphFormat设置段落格式(注:Document对象也可用于设置段落及表格格式,详细用法可参考Aspose官网的例子)

 //获取ParagraphFormat对象
var ph = builder.ParagraphFormat;
//文字对齐方式
ph.Alignment = ParagraphAlignment.Center;
// 单倍行距 = 12 , 1.5 倍 = 18
ph.LineSpacing = 12;

得到Font对象用于设置字体:

//获取Font对象
Font font = builder.Font;
//字体大小
font.Size = ;
//是否粗体
font.Bold = false;
//下划线样式,None为无下划线
font.Underline = Underline.None;

(3)添加正文:通过DocumentBuilder添加正文,

//添加文字
builder.Write("this is text");
//添加文字(带回车)
builder.Writeln("this is text with ln");
//添加回车
builder.Writeln();

(4)添加表格:通过DocumentBuilder添加表格,

//开始添加表格
builder.StartTable();
//开始添加第一行,并设置表格行高
RowFormat rowf = builder.RowFormat;
rowf.Height = ;
//插入一个单元格
builder.InsertCell();
//设置单元格是否水平合并,None为不合并
builder.CellFormat.HorizontalMerge = CellMerge.None;
//设置单元格是否垂直合并,None为不合并
builder.CellFormat.VerticalMerge = CellMerge.None;
//设置单元格宽
builder.CellFormat.Width = ;
//单元格垂直对齐方向
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
//单元格水平对齐方向
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
//单元格内添加文字
builder.Write("this is a cell of row 1 line 1");
//结束第一行
builder.EndRow();
//继续添加表格第二行
...
//结束表格
builder.EndTable();

(5)最后,使用Document对象保存成word文件

//添加文件名,并保存为doc文件
string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".doc";
doc.Save(fileName);

源码地址:github打包下载

.net使用AsposeWord导出word table表格的更多相关文章

  1. C#通过模板导出Word(文字,表格,图片)

    C#通过模板导出Word(文字,表格,图片)   C#导出Word,Excel的方法有很多,这次因为公司的业务需求,需要导出内容丰富(文字,表格,图片)的报告,以前的方法不好使,所以寻找新的导出方法, ...

  2. 使用NPOI2.1.3.1版本导出word附带表格和图片

    原文:http://www.cnblogs.com/afutureBoss/p/4074397.html?utm_source=tuicool&utm_medium=referral 最近项目 ...

  3. word模板导出的几种方式:第二种:C#通过模板导出Word(文字,表格,图片) 占位符替换

    原文出处:https://www.cnblogs.com/ilefei/p/3508463.html 一:模板的创建   (注意文件后缀只能是.docx或.doct) 在需要位置 插入-文档部件-域, ...

  4. 前台导出Word文档思路步骤总结(freemarker)

    1. 需求是导出word带表格,表格列数不变,行数由数据库的值决定: 2. 导出最开始想的是直接前端导出,使用了jquery-wordexport插件,导出后,表格边框全没了,无法使用: 3. 采用了 ...

  5. 记录一下表格用poi的导出word

    也是网上找的代码http://53873039oycg.iteye.com/blog/2152009,但是横向合并单元格没成功.只能用很蠢的办法建立了好多table public void fillT ...

  6. PowerDesiger 15逆向生成工程E-R图及导出word表格

    应用环境:win8(64位)+oracle10g(32位)服务端+PowerDesigner15 需求:oracle数据库中的表结构是web工程框架hibernate 自动生成,现需要将数据库中已有的 ...

  7. c#(.net) 导出 word表格

    做了差不多一周的导出Word,现在把代码贴出来   : ExportWord.cs using System; using System.Collections.Generic; using Syst ...

  8. poi导出word表格详解 超详细了

    转:非常感谢原作者 poi导出word表格详解 2018年07月20日 10:41:33 Z丶royAl 阅读数:36138   一.效果如下 二.js代码 function export_word( ...

  9. C# 导出word 表格代码

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

随机推荐

  1. 创建jedis对象

    1.先在taotao-parent的pom.xml中复制 以下内容到rest的pom.xml中 <!-- Redis客户端 --> <dependency> <group ...

  2. UEP-自定义持久化类

    HY-UEP提供了两种持久化方式:基于JPA的持久化机制和自定义持久化机制,JPA的持久化机制 比较符合现在的软件开发模式,支持各种主流数据库;自定义持久化时我们平台产品的特有持久化 机制的升级,在综 ...

  3. mysql之repair table 修复表札记

    REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE   tbl_name[,tbl_name] ... [QUICK] [EXTENDED] [USE_FRM] REP ...

  4. vue集成百度UEditor富文本编辑器

    在前端开发的项目中.难免会遇到需要在页面上集成一个富文本编辑器.那么.如果你有这个需求.希望可以帮助到你 vue是前端开发者所追捧的框架,简单易上手,但是基于vue的富文本编辑器大多数太过于精简.于是 ...

  5. 邓_Jquery测试题

    一.Jquery测试题 下面哪种不是jquery的选择器?(单选)A.基本选择器 B.后代选择器 C.类选择器 D.进一步选择器考点:jquery的选择器 (C) 当DOM加载完成后要执行的函数,下面 ...

  6. 基于Redis的分布式锁的简单实现

    Redis官方给出两种思路 第一种:SET key value [EX seconds] [PX milliseconds] NX 第二种:SETNX+GETSET 首先,分别看一下这几个命令 SET ...

  7. ADO.NET复习总结(4)--访问SqlServer的类

    1.连接SqlConnection 2. 3.执行命令SqlCommand 4.数据读取SqlDataReader  注意: ExecuteNonQuery() :执行非查询(增删改) Execute ...

  8. Css雪碧图

    Css雪碧图: CSS雪碧 即CSS Sprite,也有人叫它CSS精灵,是一种CSS图像合并技术,该方法是将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分. 原理 ...

  9. Struts的session问题

    问题描述: 在一个action中设置session之后,在jsp中得不到session的值或者在另一个action中得不到session的值. 解决方案: 1.不要把session设置成为静态的,同时 ...

  10. Python 魔法方法详解

    据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切. 他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个, ...