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:' ...
 
随机推荐
- jQuery动态数字翻滚计数到指定数字的文字特效代码
			
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - sap  server笔记
			
system 就是sap hana database,如果一个system有多个instance,则必须分散到不同的host中,每个system有唯一的sid. hello各位,jackie建议我们去 ...
 - 2016级算法第二次上机-C.AlvinZH的儿时梦想——坦克篇
			
872 AlvinZH的儿时梦想----坦克篇 思路 简单题.仔细看题,题目意在找到直线穿过的矩形数最小,不能从两边穿过.那么我们只要知道每一行矩形之间的空隙位置就可以了. 如果这里用二维数组记住每一 ...
 - NSScanner 扫描字符串
			
两个常用于扫描字符串的方法 //'指针'只移动一个位置,判断当前所指的字符是否是目标字符@"x", 若是则存入result中,返回YES,否则NO BOOL res = [scan ...
 - Linux新手随手笔记1.9-使用Apache搭建网站
			
搭建网站 网站服务:让用户能够通过浏览器访问到的服务器上的文档资源. 对比Windows 和Linux部署服务方法对比 Windows:IIS Linux :Apache ,nginx Ap ...
 - [转] 在Jenkins Pipeline DSL中 遍历 groovy list
			
[From] https://stackoverflow.com/questions/36360097/iterating-a-groovy-list-in-jenkins-pipeline-dsl ...
 - Q791 自定义字符串排序
			
字符串S和 T 只包含小写字符.在S中,所有字符只会出现一次. S 已经根据某种规则进行了排序.我们要根据S中的字符顺序对T进行排序.更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在 ...
 - python 模块和包以及他们的导入关系
			
一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...
 - appium解决无法通过name属性识别元素org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session
			
执行代码.: public AndroidDriver<AndroidElement> appiumDriver; appiumDriver.findElement(By.name(&qu ...
 - 第十一次 Scrum Meeting
			
第十一次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/4/18 21:00 20min 大运村1号楼6F 附Github仓库:WEDO 例会照片 工作情况总结 人员 ...