.net使用AsposeWord导出word table表格

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

1.前言

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

2.说明

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

3.最终效果

4.使用方法简介

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

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

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

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

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

//获取Font对象
Font font = builder.Font;
//字体大小
font.Size = 11;
//是否粗体
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 = 40;
//插入一个单元格
builder.InsertCell();
//设置单元格是否水平合并,None为不合并
builder.CellFormat.HorizontalMerge = CellMerge.None;
//设置单元格是否垂直合并,None为不合并
builder.CellFormat.VerticalMerge = CellMerge.None;
//设置单元格宽
builder.CellFormat.Width = 80;
//单元格垂直对齐方向
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打包下载

原文地址:https://www.cnblogs.com/cxc2012/p/8450123.html

时间: 2024-10-09 20:26:05

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

freemarker导出word——让表格数据行数 列数自动变化

行数.列数变化只需定义一个List<List<T>> freemarker遍历的话,只需要使用freemarker的标记性语言<#list report.qc_third_agentTable as  table2_tr>遍历即可,如图 实现的效果 freemarker导出word--让表格数据行数 列数自动变化,布布扣,bubuko.com

利用jQuery-Word-Export导出word (含表格,ECharts)

写在前面的话:写博客的初衷是想把自己学到的知识总结下来,在写的过程中,相当于又把知识梳理了一遍.我坚信有输入,有输出,技术才会进步.我一般都会自己写一个小demo,测试没有问题,再进行整理. 在实际做项目的过程中,遇到问题,也是各种查,所以很感谢把知识分享出来的人,而我也愿意把我在项目中遇到的问题写下来,一来是巩固自己的知识点,二来如果能帮助到别人,那就更好啦. 我写的有些方法,看来有些笨,我也会继续探索和研究.如有更好的方法,可以一起交流. 正文开始~~~~ 一.jQuery-Word-Exp

java循环取出word table表格中所有的值

//往表格里面插入值或者打开表格填写 <%@ page language="java" import="java.util.*, java.awt.*" pageEncoding="gb2312"%> <%@page import="com.zhuozhengsoft.pageoffice.*, com.zhuozhengsoft.pageoffice.wordwriter.*"%> <%@ ta

c#(.net) 导出 word表格

做了差不多一周的导出Word,现在把代码贴出来   : ExportWord.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Data; 6 using System.IO; 7 8 9 /// <summary> 10 ///DaoChuWord 的摘要说明 11 /// </summary> 12 publ

Struts2利用iText导出word文档(包含表格)以提供下载

J2EE ExcelStrutsXML 在公司实习期间,带我的老师让我实现一功能——在显示课表的页面上上点击“导出文件“时能以word文档形式下载课表.将课表导出到excel里的功能他们已经实现了,用的是Struts2+poi实现的.poi对excel表格操作能力很强,但是对word文档的支持一直没有更新,操作能力有限. iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf 的文档,而且可以将XML.Ht

C# 导出word 表格代码

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Reflection; using System.IO; using System.Data.SqlClient; using System.Data; namespace WebApplicat

使用POI导出Word(含表格)的实现方式及操作Word的工具类

转载请注明出处:https://www.cnblogs.com/sun-flower1314/p/10128796.html 本篇是关于利用Apache 的POI导出Word的实现步骤.采用XWPFDocument导出Word,结构和样式完全由代码控制,操作起来还是非常的不太方便,只能够创建简单的word,不能设置样式,功能太少.但在这里还是实现一下,毕竟做过. 首先声明一些基本概念: XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档 XWPFPa

poi导出word表格跨行

DataCommon.java package com.ksource.pwlp.model.statistic; public class DataCommon { private Long id; private String name; private String otherName; private String dataName; private String otherDataName; private int value; private float otherValue; pr

NPOI导出word,以及对table的一些设置

参考网址:http://www.aiuxian.com/article/p-1970779.html NPOI版本:2.1.3.1 最终效果图: 代码: 1 /// <summary> 2 /// 导出word培训班自然情况表 3 /// </summary> 4 [HttpPost] 5 public void PrintWord() 6 { 7 int id = Int32.Parse(Request.Form["id"]); 8 var query = f