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. 造个轮子之基于 Netty 实现自己的 RPC 框架

    原文地址: haifeiWu和他朋友们的博客 博客地址:www.hchstudio.cn 欢迎转载,转载请注明作者及出处,谢谢! 服务端开发都会或多或少的涉及到 RPC 的使用,当然如果止步于会用,对 ...

  2. 【QTP专题】02_时间同步点问题

    一.什么是同步点 同步点是指在一个测试过程中,指示QuickTest等待应用程序中某个特定过程运行完成以后再运行下一步操作.Waits until the specified object prope ...

  3. 性能测试工具Locust的使用----TaskSet类~~task任务嵌套

    内容来自网络 http://blog.sina.com.cn/s/blog_a7ace3d80102w9r0.html TaskSet类 正如字面意思,TaskSet类定义了每个用户的任务集合,测试任 ...

  4. HTTP请求的两种方式get和post的区别

    1,get从服务器获取数据:post向服务器发送数据: 2,安全性,get请求的数据会显示在地址栏中,post请求的数据放在http协议的消息体: 3,从提交数据的大小看,http协议本身没有限制数据 ...

  5. 区分Web服务器、HTTP服务器、应用程序服务器

    在学习前端的过程中.进程听到和看到web服务器.HTTP服务器.应用程序服务器,但一直不知道它们有什么区别,迷惑了好久,今天查看的很多博客,终于算是梳理通了,下面我就来总结一下它们的区别,顺别了解一些 ...

  6. Java Builder 模式,你搞懂了么?

    加油.png 前言:最近闲来无事的时候想着看看一些平常用的三方库源码,没想到看了之后才知道直接撸源码好伤身体,一般设计优秀的开源库都会涉及很多的设计模式,就比如 android 开发使用频繁的 okH ...

  7. php-elasticsearch bulk批量插入数据

    1.单条插入 <?php include '../vendor/Elasticsearch/autoload.php'; $a['hosts'] = array( #需要用户名时 http:// ...

  8. 01迷宫 BFS

    题目描述 有一个仅由数字000与111组成的n×nn \times nn×n格迷宫.若你位于一格0上,那么你可以移动到相邻444格中的某一格111上,同样若你位于一格1上,那么你可以移动到相邻444格 ...

  9. css实现渐变

    .gradient{ background: -webkit-gradient(linear, 0 0, 0 100%, from(#8ca0d3), to(#375a9a)); /** Chrome ...

  10. 用Laya制作简单的动画

    (function () { var layaGameInit = window.layaGameInit || {}; var WebGL = Laya.WebGL; var Browser = L ...