JS代码可参考http://www.cnblogs.com/mu1516633121/p/7753423.html

同样是winform架构下应用到Aspose.Words来读写Word文档

其中Section是对页面进行设置,在Aspose.Words中,在什么地方导出什么内容前要先将光标移至相应位置,然后再Writeln写入对应的内容。

        /// <summary>
/// 导出Word文档
/// </summary>
/// <param name="data">要导出的数据</param>
/// <param name="title">标题</param>
/// <param name="colWidth">宽度列表</param>
public void exportWord(string data,string title, string colWidth)
{
string saveFileName = "";
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "docx";
saveDialog.Filter = "Word文件|*.docx";
saveDialog.FileName = DateTime.Now.Ticks.ToString();
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
if (saveFileName.IndexOf(":") < ) return; //被点了取消 try
{
DataTable products = JsonConvert.DeserializeObject<DataTable>(data);
//导出的每列的宽度
double[] colWidthList = JsonConvert.DeserializeObject<double[]>(colWidth); Document doc = new Document();
DocumentBuilder docWriter = new DocumentBuilder(doc);
foreach (Aspose.Words.Section section in doc)
{
//设置纸张方向为横向
section.PageSetup.Orientation = Aspose.Words.Orientation.Landscape;
//设置纸张大小为A4纸大小
section.PageSetup.PaperSize = Aspose.Words.PaperSize.A4;
section.PageSetup.HeaderDistance = ;
//设置页眉页脚
section.PageSetup.DifferentFirstPageHeaderFooter = true;
section.PageSetup.OddAndEvenPagesHeaderFooter = true;
section.PageSetup.LeftMargin = ; //页边距
section.PageSetup.RightMargin = ;
section.PageSetup.TopMargin = ;
section.PageSetup.BottomMargin = ;
}
#region 设置页眉页脚
//移动光标至页眉设置属性(第一页)
docWriter.MoveToHeaderFooter(HeaderFooterType.HeaderFirst);
docWriter.ParagraphFormat.Alignment = ParagraphAlignment.Center;
docWriter.Font.Name = "黑体";
docWriter.Font.Bold = true;
docWriter.Font.Size = ;
docWriter.Writeln(title);
//移动光标至页眉设置属性(偶数页)
docWriter.MoveToHeaderFooter(HeaderFooterType.HeaderEven);
docWriter.ParagraphFormat.Alignment = ParagraphAlignment.Center;
docWriter.Font.Name = "黑体";
docWriter.Font.Bold = true;
docWriter.Font.Size = ;
docWriter.Writeln(title);
//移动光标至页眉设置属性(奇数页)
docWriter.MoveToHeaderFooter(HeaderFooterType.HeaderPrimary);
docWriter.ParagraphFormat.Alignment = ParagraphAlignment.Center;
docWriter.Font.Name = "黑体";
docWriter.Font.Bold = true;
docWriter.Font.Size = ;
docWriter.Writeln(title);
//移动光标至页脚设置属性(第一页)
docWriter.MoveToHeaderFooter(HeaderFooterType.FooterFirst);
docWriter.Font.Name = "Arial";
docWriter.Font.Size = ;
docWriter.Writeln("导出时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//移动光标至页脚设置属性(偶数页)
docWriter.MoveToHeaderFooter(HeaderFooterType.FooterEven);
docWriter.Font.Name = "Arial";
docWriter.Font.Size = ;
docWriter.Writeln("导出时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//移动光标至页脚设置属性(奇数页) docWriter.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
docWriter.Font.Name = "Arial";
docWriter.Font.Size = ;
docWriter.Writeln("导出时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
#endregion //光标移至文档内容
docWriter.MoveToDocumentStart();
for (int i = ; i < products.Rows.Count; i++)
{
for (int j = ; j < products.Columns.Count; j++)
{
//创建内容
AsposeCreateCell(docWriter, colWidthList[j], products.Rows[i][j].ToString());
}
docWriter.EndRow();
}//end for doc.Save(saveFileName, Aspose.Words.SaveFormat.Docx); mainForm.Invoke(new MethodInvoker(delegate
{
MessageBox.Show(mainForm, "导出成功");
}));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return;
}
}
/// <summary>
/// 画表格
/// </summary>
/// <param name="builder">文档</param>
/// <param name="width">宽度</param>
/// <param name="text">文本</param>
public void AsposeCreateCell(DocumentBuilder builder, double width, string text)
{
builder.InsertCell();
builder.CellFormat.Borders.LineStyle = Aspose.Words.LineStyle.Single;
builder.CellFormat.Borders.Color = System.Drawing.Color.Black;
builder.CellFormat.Width = width;//单元格的宽度
builder.CellFormat.LeftPadding = ;//单元格的左内边距
builder.CellFormat.RightPadding = ;//单元格的右内边距
builder.RowFormat.Height = ;//行高
builder.CellFormat.VerticalMerge = CellMerge.None;
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;//垂直居中对齐
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
builder.Font.Size = ;
builder.Font.Name = "Arial";
builder.Write(text);
}

easyui导出当前datagrid数据(Word)的更多相关文章

  1. easyui导出当前datagrid数据(含表头)

    JS代码 //导出当前DataGrid数据 function doExportCommon() { var list = getCheckedRowCommon(); var exportList = ...

  2. easyUI + servlet 展示datagrid数据列表

    1:在jsp页面添加所用easyUI的js和css 2.前台代码示例: <table id="dgObj" style="width: 100%;height:90 ...

  3. EasyUI datagrid数据表格的函数getData返回来的是什么

    EasyUI datagrid数据表格的函数getData返回来的是什么? 他返回来的是这么一个对象: Object { rows=[10], total=15} 其中rows就是每一行的数据,是这些 ...

  4. Easyui datagrid 数据表格 表格列头右键菜单选择展示列 JS

    Easyui ,数据表格加载出来以后,在表格头右键,会有显示筛选的功能: 如图: 然后可以取消勾选,就变成下面这个样子: 功能的实现是通过重写了easyui 的 $.fn.datagrid.defau ...

  5. 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格

    EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...

  6. easyUI导出数据

    easyUI导出数据模式 后台: //导出数据 public function index_doExport() { $search['diqu']=$_POST['diqu']; $search[' ...

  7. 扩充 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

    客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...

  8. 第二百二十二节,jQuery EasyUI,DataGrid(数据表格)组件

    jQuery EasyUI,DataGrid(数据表格)组件 学习要点: 1.加载方式 2.分页功能 本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于 Pa ...

  9. EasyUI:datagrid数据汇总

    EasyUI:datagrid数据汇总 js代码: var total=0;//全局变量 $(function(){ $('#tablebudgetdata').datagrid({ title:' ...

随机推荐

  1. python-自定义异步非阻塞爬虫框架

    api import socket import select class MySock: def __init__(self, sock, data): self.sock = sock self. ...

  2. 「HNOI 2013」数列

    题目链接 戳我 \(Solution\) 这道题貌似并不难的样子\(QAQ\) 我们发现这个因为有首项的关系所以有点不太好弄.所以我们要将这个首项对答案的影响给去掉. 我们可以构建一个差分数组,我们令 ...

  3. Oracle-利用解析函数计算连续、回流

    ---最大连续交易天数 select t2.customer_no,max(t2.co) from (select t1.customer_no,t1.yp) co from (select ctd. ...

  4. 921. Minimum Add to Make Parentheses Valid

    Given a string S of '(' and ')' parentheses, we add the minimum number of parentheses ( '(' or ')', ...

  5. 集合的addAll方法--list.addAll(null)会报错--java.lang.NullPointerException

    Exception in thread "main" java.lang.NullPointerException at java.util.ArrayList.addAll(Ar ...

  6. CentOS 下安装 Hexo 博客

    前言: 之前一直使用Wordpress架构作为博客网站架构,但是现在频频爆出漏洞.实在是不敢用也不想用了,然后群里面有小伙伴用的是 Github 搭建 Hexo 架构博客.就写了这个教程,给自己做个参 ...

  7. Ionic2实战——按模块划分app 创建多module

    http://www.jianshu.com/p/d94324b722af 背景 用ionic2开发过一两个小功能的朋友都会发现,每新建一个页面都需要在\src\app\app.module.ts中添 ...

  8. Machine learning吴恩达第二周coding作业(选做)

    1.Feature Normalization: 归一化的处理 function [X_norm, mu, sigma] = featureNormalize(X) %FEATURENORMALIZE ...

  9. 原生js 实现旋转木马

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. (二)Audio子系统之new AudioRecord()(Android4.4)

    在上一篇文章<(一)Audio子系统之AudioRecord.getMinBufferSize>中已经介绍了AudioRecord如何获取最小缓冲区大小,接下来,继续分析AudioReco ...