1. 程式人生 > >Winform之SpreadSheetGear轉DevExpress.XtraSpreadsheet.v13.2實踐

Winform之SpreadSheetGear轉DevExpress.XtraSpreadsheet.v13.2實踐

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);


相關推薦

WinformSpreadSheetGearDevExpress.XtraSpreadsheet.v13.2實踐

DevExpress.XtraSpreadsheet.v13.2 允許使用者建立、管理、列印、轉換spreadsheet檔案而不需要使用者安裝Office。什麼是Spreadsheet 可以看到最後就是一個近乎完整的Excel介面。如何使用Spreadsheet 專案新增引

DevExpress.XtraSpreadsheet.v13.2.6 插入統計圖

維護一個老專案,使用的是Devexpress,裡邊有一個模組要操作到Excel,插入統計圖,但是無法插入統計圖,例如折線圖,找遍了全網,都是v15以上的版本,最後實在無奈,去官網詢問,結果。。。 兄弟

:vue-router 2.0 常用基礎知識點router.push()

als 返回 ack name rep targe 代碼 添加 clas 轉載地址:http://www.jianshu.com/p/ee7ff3d1d93d router.push(location) 除了使用 <router-link> 創建 a 標簽來

C# Winform界面跳動畫

col color protect 前言 問題 轉動 style pan 原因 前言:   今天的任務在實現功能的基礎上,要重新構造窗體UI,然而一開始加了背景圖後,開始出現了閃屏,原因就是因為有大量的控件需要重繪。然後就有了以下代碼解決了問題: 1 protected

winformListView

date 才有 樣式 單擊 對齊 bit 設置 結束 ron 一、ListView類   1、常用的基本屬性: (1)FullRowSelect:設置是否行選擇模式。(默認為false) 提示:只有在Details視圖該屬性才有意義。 (

thinkphp3.2.3apachenginx偽靜態設定

本地開發的專案,使用的是apache伺服器,完成專案之後,之前搭建到的伺服器都是Windows伺服器上,從而上線,這次需要在寶塔上nginx伺服器上搭建,所以需要將apache的偽靜態更改為nginx:1.在網上搜索到的基本上都不是自己理想狀態下的需求,搜尋到的方法基本上與比

Atitit 演算法道 attilax著 1. 編碼演算法 3 1.1. Base64 htmlencode urlencode 3 1.2. 漢字編碼演算法 碼演算法 3 2. Ui方面的演算法

Atitit 演算法之道 attilax著   1. 編碼演算法 3 1.1. Base64 htmlencode  urlencode 3 1.2. 漢字編碼演算法   轉碼演算法 3 2. Ui方面的演算法 3 2.1. 軟鍵盤演算

pythonshelve模塊詳解2

obb 情況下 缺點 hone p s 獲取 路徑 存儲文件 shelve 閱讀目錄一、定義二、用途三、用法四、關聯模塊Anydbm五、方法六、writeback參數回到頂部一、定義 Shelve是對象持久化保存方法,將對象保存到文件裏面,缺省(即默認)的數據存儲文件是二進

winform MDI容器

for dip each code div ipa rm2 args windows MDI是指將多控件窗體在同一窗體中打開 1、設置:屬性中IsMDIContainer:true; 窗體變為灰色成為MDI窗體容器 2、MDI中一般采用菜單作為打開方式 3、子級窗體在MDI

[C#學習筆記異步編程模式2]BeginInvoke和EndInvoke方法 (轉載)

cti otf 函數返回 編程模式 catch 數值 gin 單線程 blog 為什麽要進行異步回調?眾所周知,普通方法運行,是單線程的,如果中途有大型操作(如:讀取大文件,大批量操作數據庫,網絡傳輸等),都會導致方法阻塞,表現在界面上就是,程序卡或者死掉,界面元素不動了,

hdu 5253 連接的管道(kruskal)(2015年百度星程序設計大賽 - 初賽(2))

ostream turn targe 告訴 margin 表輸入 輸入 cst 代碼 連接的管道 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T

.4-Vue源碼數據雙綁(2

font _屬性 def ceo stat urn mark function return 開播了開播了!   vue通過數據劫持來達到監聽和操作DOM更新,上一節簡述了數組變化是如何監聽的,這一節先講講對象屬性是如何劫持的。 // Line-855

A題拼音數字

scan util length 響應 color sans pop -c 一行 輸入是一個僅僅包括拼音的字符串,請輸出相應的數字序列。轉換關系例如以下: 描寫敘述: 拼音 yi er san si wu liu qi ba jiu 阿拉伯數字 1

Python路第二天,基礎2-基本數據類型

cheng python ech odi lun ron zid ast aof %E5%BE%AE%E4%BF%A1%E5%85%AC%E5%85%B1%E5%8F%B7%E7%9A%84PHP%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80%E7

個人量化交易者的自由路()

建立 ast 研究 bsp 編程 機器學習 細節 能開 平臺 對於做量化交易的個人交易者來說,需要以下幾步; 第一、有自己根據接口獨立開發的交易系統。文華財經、交易開拓者、金字塔除外。 第二、有自己完備的交易策略,根據自己的喜好,進行開發CTA、高頻交易、套利交易等。

Linux使用haproxy搭建web群集(2)

linux duyuheng keepalived Linux之使用haproxy搭建web群集(2) 案例二:一、 實驗拓撲圖 二、 實驗目標:使用keepalived+haproxy實現雙機熱備和負載均衡。三、 實驗環境:各虛擬機防火墻Iptables 與 NetworkManager 關閉四

貓貓學iOS 微博項目實戰(2)微博主框架-自己定義導航控制器NavigationController

點擊狀態 reat obj mar all func 返回 mutable point 貓貓分享,必須精品 原創文章。歡迎轉載。轉載請註明:翟乃玉的博客 地址:viewmode=contents">http://blog.csdn.net/u0133

c# 依賴註入---反射()

cti args adl factor ninject button his eal nodes 詳細請看http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html 定義一個接口,和兩個類(實現該接口) IB

Kuberneteskubectl常用命令使用指南:2:故障排查

alpha eth message resources mount 權限 copyright count limit kubectl是一個用於操作kubernetes集群的命令行接口,通過利用kubectl的各種命令可以實現各種功能,是在使用kubernetes中非常

c#如何換文本文件編碼格式為utf-8

格式 logs 文件編碼 pre str enc cnblogs style ext 如代碼: string content = File.ReadAllText(path, Encoding.Default); File.WriteAllText(path, conte