easyui导出当前datagrid数据(Word)
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)的更多相关文章
- easyui导出当前datagrid数据(含表头)
JS代码 //导出当前DataGrid数据 function doExportCommon() { var list = getCheckedRowCommon(); var exportList = ...
- easyUI + servlet 展示datagrid数据列表
1:在jsp页面添加所用easyUI的js和css 2.前台代码示例: <table id="dgObj" style="width: 100%;height:90 ...
- EasyUI datagrid数据表格的函数getData返回来的是什么
EasyUI datagrid数据表格的函数getData返回来的是什么? 他返回来的是这么一个对象: Object { rows=[10], total=15} 其中rows就是每一行的数据,是这些 ...
- Easyui datagrid 数据表格 表格列头右键菜单选择展示列 JS
Easyui ,数据表格加载出来以后,在表格头右键,会有显示筛选的功能: 如图: 然后可以取消勾选,就变成下面这个样子: 功能的实现是通过重写了easyui 的 $.fn.datagrid.defau ...
- 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格
EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...
- easyUI导出数据
easyUI导出数据模式 后台: //导出数据 public function index_doExport() { $search['diqu']=$_POST['diqu']; $search[' ...
- 扩充 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)
客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...
- 第二百二十二节,jQuery EasyUI,DataGrid(数据表格)组件
jQuery EasyUI,DataGrid(数据表格)组件 学习要点: 1.加载方式 2.分页功能 本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于 Pa ...
- EasyUI:datagrid数据汇总
EasyUI:datagrid数据汇总 js代码: var total=0;//全局变量 $(function(){ $('#tablebudgetdata').datagrid({ title:' ...
随机推荐
- nexus3
Maven 介绍 Apache Maven 是一个创新的软件项目管理和综合工具. Maven 提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和 ...
- droup
Oracle Drop表并未直接删除 drop table xx purge drop表 执行drop table xx 语句 drop后的表被放在回收站(user_recyclebin) ...
- HAOI2010 最长公共子序列
题目链接:戳我 30分暴力....暴力提取子序列即可qwqwq #include<iostream> #include<cstdio> #include<algorith ...
- 在线绘图网站 UML、思维导图、 流程图、 用例图等等
https://www.processon.com/ 用我的微信登录即可 帐号是 QQ邮箱
- 洛谷P4097 [HEOI2013]Segment(李超线段树)
题面 传送门 题解 调得咱自闭了-- 不难发现这就是个李超线段树,不过因为这里加入的是线段而不是直线,所以得把线段在线段树上对应区间内拆开之后再执行李超线段树的操作,那么复杂度就是\(O(n\log^ ...
- 如何在Linux下禁用IPv6
如何在Linux下禁用IPv6 echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 禁用IP ...
- 爬虫--python3如何安装scrapy?
直接使用pip3 install scrapy会报很多错误,所以试试以下步骤. (1) https://www.lfd.uci.edu/~gohlke/pythonlibs/ 在这个python第三方 ...
- 编程开发之--Java集合类继承与实现必备知识
1.LinkedHashSet有序链式集合 举例: long startTime=System.currentTimeMillis(); LinkedHashSet oprTypeSet = new ...
- Oracle PL/SQL学习之Hello World(0)
1.PL/SQL是Oracle数据库的一大创举,让一些复杂繁琐的常规主流编程代码做的编码处理过程,只需要在PL/SQL中使用简短的几句代码就可以解决,并且准确高效.那么遵循惯例,我们学习PL/SQL编 ...
- rinetd做代理!redis做代理使外网直接远程连接
Centos7下Rinetd安装与应用 Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.haproxy.nginx就不说 ...