//public virtual void ExportToXls() //{ // string fileName = GetFileName(new XlsExportOptions() { ExportMode = XlsExportMode.SingleFilePageByPage }); // Export((file, options) => view.ExportToXls(file, options), fileName, new XlsExportOptionsEx() { ExportMode = XlsExportMode.SingleFilePageByPage }); //} //public virtual void ExportToCsv() //{ // string fileName = GetFileName(new CsvExportOptions() ); // Export((file, options) => view.ExportToCsv(file, options), fileName, new CsvExportOptionsEx()); //} private void UnionExcel <T>(string fileName, T options, int count) where T : ExportOptionsBase { if (string.IsNullOrEmpty(fileName)) { return; } DXSplashScreen.Show <ExportWaitIndicator>(); SubscribeProgressEvents <T>(options); try { Excel.Application ObjExcel = new Excel.Application(); Excel.Worksheet ObjWorkSheet; Excel.Workbook ObjWorkBookTemp; Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(fileName + "temp" + 0, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); //ObjExcel.Workbooks.Add();// (fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); for (int i = 1; i < count; i++) { ObjWorkBookTemp = ObjExcel.Workbooks.Open(fileName + "temp" + (i), Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBookTemp.Sheets[1]; ObjWorkSheet.Copy(Type.Missing, ObjWorkBook.Sheets[i]); ObjWorkBookTemp.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlSaveChanges, Type.Missing, Type.Missing); System.IO.File.Delete(fileName + "temp" + (i)); } try { ObjWorkBook.SaveAs(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); } catch { MessageBox.Show("Произошла ошибка во время сохранения файла"); } ObjWorkBook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlSaveChanges, Type.Missing, Type.Missing); System.IO.File.Delete(fileName + "temp" + 0); ObjExcel.Quit(); } finally { UnsubscribeProgressEvents <T>(options); if (DXSplashScreen.IsActive) { DXSplashScreen.Close(); } } if (ShouldOpenExportedFile()) { ProcessLaunchHelper.StartProcess(fileName, false); } }
void ExportCore <T>(Action <string, T> exportToFile, string fileName, T options) where T : ExportOptionsBase { DXSplashScreen.Show <ExportWaitIndicator>(); ((IDataAwareExportOptions)options).ExportProgress += ExportProgress; try { exportToFile(fileName, options); } finally { ((IDataAwareExportOptions)options).ExportProgress -= ExportProgress; DXSplashScreen.Close(); } if (ShouldOpenExportedFile()) { ProcessLaunchHelper.StartProcess(fileName, false); } }