Winform之SpreadSheetGear转DevExpress.XtraSpreadsheet.v13.2 z
DevExpress.XtraSpreadsheet.v13.2 允许用户创建、管理、打印、转换spreadsheet文件而不需要用户安装Office。
什么是Spreadsheet
可以看到最后就是一个近乎完整的Excel界面。
如何使用Spreadsheet
项目添加引用:
DevExpress.Docs.v13.2
DevExpress.XtraSpreadsheet.v13.2
代码示例:
注释掉的部分是原来使用SpreadSheetGear的代码,理论上DevExpress.Spreadsheet可以完全替代SpreadSheetGear。
using DevExpress.Spreadsheet;
using DevExpress.Spreadsheet.Export; //打开Excel文件
//SpreadsheetGear.IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook(openFileDialog.FileName, System.Globalization.CultureInfo.CurrentCulture);
spreadsheetControl1.LoadDocument(openFileDialog.FileName, DocumentFormat.Xls); //从流中读取数据
var stream = new MemoryStream();
gridView1.ExportToXls(stream, true); //生成流
//var workbook = SpreadsheetGear.Factory.GetWorkbookSet().Workbooks.OpenFromStream(stream);
Workbook workbook = new Workbook();
workbook.LoadDocument(stream, DocumentFormat.Xls); //保存Excel文件
//workbook.SaveAs(saveFileDialog.FileName, SpreadsheetGear.FileFormat.XLS97);
workbook.SaveDocument(saveFileDialog.FileName, DocumentFormat.Xls); //新建Workbook和Worksheet
//SpreadsheetGear.IWorkbook workbook = SpreadsheetGear.Factory.GetWorkbook();
//SpreadsheetGear.IWorksheet workSheet = workbook.Worksheets[0];
//workSheet.Name = dtSource.TableName;
Workbook workbook = new Workbook();
Worksheet workSheet = workbook.Worksheets.Add(dtSource.TableName); //将DataTable填到Cell中
//SpreadsheetGear.IRange range = workSheet.Cells["A2"];
//range.CopyFromDataTable(dtSource, SpreadsheetGear.Data.SetDataFlags.NoColumnHeaders);
workSheet.Import(dtSource, false, 1, 0); //数据导出到DataTable
//var dataSet = workbook.GetDataSet(SpreadsheetGear.Data.GetDataFlags.FormattedText |
// SpreadsheetGear.Data.GetDataFlags.NoColumnHeaders);
Worksheet worksheet = workbook.Worksheets[0];
Range range = worksheet.GetUsedRange();
bool rangeHasHeaders = false;
DataTable dataTable = worksheet.CreateDataTable(range, rangeHasHeaders);
//务必添加引用DevExpress.Docs.v13.2.dll
DataTableExporter exporter = worksheet.CreateDataTableExporter(range, ataTable, rangeHasHeaders);
exporter.Export(); //设置Cell值和格式
//workSheet.Cells[0, index].Columns.AutoFit();
//workSheet.Cells[0, index].Interior.Color = Color.Gray;
//workSheet.Cells[0, index].Borders.LineStyle = SpreadsheetGear.LineStyle.Continuous;
workSheet.Columns.AutoFit(0, dtSource.Columns.Count);
workSheet.Cells[0, index].FillColor = Color.Gray;
workSheet.Cells[0, index].Borders.SetAllBorders(Color.Black, BorderLineStyle.Thin);
Winform之SpreadSheetGear转DevExpress.XtraSpreadsheet.v13.2 z的更多相关文章
- WinForm下开发插件DevExpress安装及使用
WinForm下开发插件DevExpress安装及使用在Visual Studio中安装DevExpress开发插件插件的使用方法简单的Demo介绍下载链接:https://pan.baidu.com ...
- c# WinForm中使用DevExpress.XtraSpreadsheet.SpreadsheetControl时,给sheet批量赋值
即使看了Demo,我也是很久才搞清除的,可能是我太笨了 首先在form上添加一个spreadsheetcontrol控件,添加各种引用: 然后添加引用: using DevExpress.XtraEd ...
- 在Winform开发框架中使用DevExpress的内置图标资源
在开发Winform程序界面的时候,我们往往会使用一些较好看的图表,以便能够为我们的程序界面增色,良好的图标设置可以让界面看起来更加美观舒服,而且也比较容易理解,图标我们可以通过一些网站获取各种场景的 ...
- 在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件
DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...
- 在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式
在我较早的一篇随笔<在DevExpress程序中使用TeeList控件以及节点查询的处理>中,介绍了在树形列表TreeList控件上面,利用SearchControl实现节点的模糊查询过滤 ...
- Winform使用DevExpress的WaitDialogForm画面 z
使用了DevExpress的WaitDialogForm 在应用程序加载开始时新建一个线程,并将loading画面show起来,在应用程序画面弹出前将该线程终止. 代码: private DevExp ...
- Winform中实现更改DevExpress的RadioGroup的选项时更改其他控件(TextEdit、ColorPickEdit)的值
场景 Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...
- winform框架源码-Devexpress开发框架
链接: https://pan.baidu.com/s/1TnDj6qftGEUl3sTB8QXs_w 提取码: 关注公众号[GitHubCN]回复获取 开发模式:C/S C/S采用的是dev14 ...
- Devexpress DateEdit选年月 z
Mask与Display只显示年月2012-02这种格式,但用户选择起来还是不爽,体验太差. 效果如下: 代码: using Microsoft.VisualBasic; using System; ...
随机推荐
- java基础知识回顾之javaIO类--File类应用:递归深度遍历文件
代码如下: package com.lp.ecjtu.File.FileDeepList; import java.io.File; public class FileDeepList { /** * ...
- POJ 2993Emag eht htiw Em Pleh
http://poj.org/problem?id=2993 这个题与POJ2996正好反着,但个人认为,比2996好做多了,那些边边框框都挺容易输出的,剩下的注意p别忘了给输进去就行,还有白色的是大 ...
- Java实现二维码QRCode的编码和解码
涉及到的一些主要类库,方便大家下载: 编码lib:Qrcode_swetake.jar (官网介绍-- http://www.swetake.com/qr/index-e.html) 解码lib: ...
- lintcode :nth to Last Node In List 链表倒数第n个节点
题目: 链表倒数第n个节点 找到单链表倒数第n个节点,保证链表中节点的最少数量为n. 样例 给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1. ...
- lintcode : 空格替换
题目: 空格替换 设计一种方法,将一个字符串中的所有空格替换成 %20 .你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度. 样例 对于字符串"Mr John S ...
- 【Linux高频命令专题(22)】gzip
概述 减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间.gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用.gzip不仅 ...
- 【mongoDB运维篇②】备份与恢复(导入与导出)
导入/导出可以操作的是本地的mongodb服务器,也可以是远程的服务器 所以,都有如下通用选项: -h host 主机 --port port 端口 -u username 用户名 -p passwd ...
- avi 格式详解
http://blog.csdn.net/becomly/article/details/6283004 http://blog.csdn.net/easecom/article/details/45 ...
- JAVA学习路线图---(JAVA1234)
第一阶段-Java基础 这一阶段很重要,关系到你后面阶段的学习,所以务必把这一阶段掌握好: 如果你是0基本,我推荐一本比较好的,适合初学者看的书:明日科技的<Java从入门到精通>,最 ...
- C#基础精华----枚举
enums枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存储. (1)默认情况下,枚举中的第一个变量被赋值为0,其他的变量的值按定义的顺序来递增(0,12,3...),因此以下 ...