Пример #1
0
        //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);
            }
        }
Пример #2
0
 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);
     }
 }