使用DevExpress匯出GridControl控制元件資料到excel檔案
使用DevExpress可以實現將介面的GridControl的內容直接匯出到excel檔案,一般實現方法如下所示:
public void export(GridControl gridControl1)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.FileName = "";
saveFileDialog1.Filter = "Excel檔案(.xls)|*.xls";
string strtype = "Excel檔名";
saveFileDialog1.FileName = strtype + DateTime.Now.ToString("yyyyMMddhhmmss");
saveFileDialog1.OverwritePrompt = false; //已存在檔案是否覆蓋提示
if (saveFileDialog1.ShowDialog() != DialogResult.OK)
return;
//已存在檔案是否覆蓋提示
while (System.IO.File.Exists(saveFileDialog1.FileName) &&
DevExpress.XtraEditors.XtraMessageBox.Show("該檔名已存在,是否覆蓋?",
"提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
{
if (saveFileDialog1.ShowDialog() != DialogResult.OK)
return;
}
if (saveFileDialog1.FileName != "")
{
try
{
System.IO.FileStream fs =(System.IO.FileStream)saveFileDialog1.OpenFile();
gridControl1.ExportToXls(fs);//將GridControl的內容匯出到指定的檔案路徑
fs.Close();
DevExpress.XtraEditors.XtraMessageBox.Show("資料匯出成功!", "提示");
}
catch (Exception ex)
{
if (ex.Message.Contains("正由另一程式使用"))
{
DevExpress.XtraEditors.XtraMessageBox.Show("資料匯出失敗!檔案正由另一個程式佔用!", "提示");
}
else
DevExpress.XtraEditors.XtraMessageBox.Show("資料匯出失敗!資料量過大,請分別統計再匯出!", "提示");
}
}
}
不過以上程式碼會出現一定的bug,比如說如果GridControl的資料是取自於資料庫,之後使用CustomColumnDisplayText事件的觸發函式修改其中一兩個欄位的值後展示到介面,而使用以上的方法則匯出的結果還為取自資料庫的原始值,並非處理後的值。那麼應當為ExportToXls函式設定匯出選項。將如下程式碼:
gridControl1.ExportToXls(fs);//將GridControl的內容匯出到指定的檔案路徑
替換為:
DevExpress.XtraPrinting.XlsExportOptions options = new DevExpress.XtraPrinting.XlsExportOptions(DevExpress.XtraPrinting.TextExportMode.Value);
options.TextExportMode = TextExportMode.Text;//設定匯出模式為文字
gridControl1.ExportToXls(fs,options);
而匯出的excel文件的格式不太美觀,列的寬度過短,因為這種方法是直接匯出介面顯示的GridControl效果,預設為表格列寬度最小值,應當對GridControl的屬性進行設定:設定GridControl的OptionPrint下的AutoWidth的值為false。以上設定即可使匯出的excel檔案列寬自動調整,並且可以根據需要調整GridControl控制元件具體列在介面展示寬度即可。
相關文章
- 【Mysql】匯出資料到excel檔案中MySqlExcel
- SQL通過bcp匯出資料到excel檔案SQLExcel
- PHP匯出大量資料到excel表格PHPExcel
- Vue匯出資料到Excel電子表格VueExcel
- Java 匯入資料到Excel並提供檔案下載介面JavaExcel
- DevExpress GridView匯入匯出ExceldevExpressViewExcel
- 如何使用JavaScript匯入和匯出Excel檔案JavaScriptExcel
- java匯出Excel檔案JavaExcel
- C#快速匯出百萬級資料到Excel方法C#Excel
- 用Perl從oracle匯出百萬級資料到excelOracleExcel
- 使用PHP原生匯出Excel和CSV檔案PHPExcel
- DevExpress匯出Excel樣式設定devExpressExcel
- oracle匯出大數量資料到檔案sqluldr2OracleSQL
- asp.net中利用NPOI匯出資料到excel中ASP.NETExcel
- DevExpress GridControl使用(轉)devExpress
- 從EXCEL匯入資料到SQL SERVERExcelSQLServer
- [pb]從excel匯入資料到datawindowExcel
- EasyExcel完成excel檔案的匯入匯出Excel
- oracle匯出資料到檔案中的方法 -- 轉自網路Oracle
- php讀取excel檔案資料的匯入和匯出PHPExcel
- Java 通過Xml匯出Excel檔案,Java Excel 匯出工具類,Java匯出Excel工具類JavaXMLExcel
- SQLServer匯出匯入資料到MySQLServerMySql
- Python批量匯入Excel資料到MySQLPythonExcelMySql
- 使用Excel匯入資料到SAP Cloud for Customer系統ExcelCloud
- Laravel-admin 匯出excel檔案LaravelExcel
- 大資料使用Excel匯出大資料Excel
- Laravel5.6中使用Laravel/Excel實現Excel檔案匯出功能LaravelExcel
- 利用NPOI匯出資料到Execl
- 【實戰教程】使用雲函式將資料表匯出為 Excel 檔案函式Excel
- 報表如何批次匯出成 excel 檔案Excel
- C#中DataGrid匯出Excel檔案C#Excel
- SAP UI5 表格資料如何匯出成 Excel 檔案(Table Export As Excel)UIExcelExport
- django實現將後臺資料excel檔案形式匯出DjangoExcel
- 利用Excel匯入資料到SAP C4CExcel
- Python匯出資料到Excel表格-NotImplementedError: formatting_info=True not yet implementedPythonExcelErrorORM
- vb用陣列方式快速匯出MSFlexGrid表格資料到Excel表格中陣列FlexExcel
- Sqoop匯出ClickHouse資料到HiveOOPHive
- 使用mysqlimport匯入資料到mysqlMySqlImport