Пример #1
0
 /// <summary>
 /// Workbook을 PDF파일 형식으로 저장합니다.
 /// </summary>
 /// <param name="fileName">파일 이름을 포함한 저장 경로.</param>
 public void ExportAsPdf(string fileName)
 {
     ActiveWorkbook.ExportAsFixedFormat(
         XlFixedFormatType.xlTypePDF,            // Type
         fileName,                               // Filename
         XlFixedFormatQuality.xlQualityStandard, // Quality
         Type.Missing,                           // IncludeDocProperties
         Type.Missing,                           // IgnorePrintAreas
         Type.Missing,                           // From
         Type.Missing,                           // To
         false,                                  // OpenAfterPublish
         Type.Missing                            // FixedFormatExtClassPtr
         );
 }
Пример #2
0
        /// <summary>
        /// Đóng Excel file, thoát Excel Application, ngắt kết nối với COM+ và CG thu dọn rác
        /// </summary>
        public void CloseWorkbook()
        {
            //http://www.velocityreviews.com/forums/t75190-re-how-to-close-excel-object-with-c.html

            ActiveWorksheet = null;

            try
            {
                //Close and Quit Excel:
                if (ActiveWorkbook != null)
                {
                    ActiveWorkbook.Close(false, string.Empty, null);
                }
            }
            finally { }

            try
            {
                if (_ExcelApplication != null)
                {
                    _ExcelApplication.Workbooks.Close();
                    _ExcelApplication.Quit();
                }
            }
            finally { }
            try
            {
                //Close ComObject:
                if (ActiveWorkbook != null)
                {
                    Marshal.ReleaseComObject(ActiveWorkbook);
                    ActiveWorkbook = null;
                }
            }
            finally { }

            try
            {
                if (_ExcelApplication != null)
                {
                    Marshal.ReleaseComObject(_ExcelApplication);
                    _ExcelApplication = null;
                    _ExcelProcessId   = 0;
                }
            }
            finally { }

            GC.Collect(); // force final cleanup!
        }
Пример #3
0
 /// <summary>
 /// 변경된 모든 사항을 지정된 경로에 지정된 형식으로 저장합니다.
 /// </summary>
 /// <param name="type">저장할 파일의 형식.</param>
 /// <param name="fileName">파일을 저장할 경로.</param>
 public void SaveAs(string fileName, XlFileFormat fileFormat)
 {
     ActiveWorkbook.SaveAs(
         fileName,                       // Filename
         fileFormat,                     // FileFormat
         Type.Missing,                   // Password
         Type.Missing,                   // WriteResPassword
         Type.Missing,                   // ReadOnlyRecommended
         Type.Missing,                   // CreateBackup
         XlSaveAsAccessMode.xlNoChange,  // AccessMode
         Type.Missing,                   // ConflictResolution
         Type.Missing,                   // AddToMru
         Type.Missing,                   // TextCodepage
         Type.Missing,                   // TextVisualLayout
         Type.Missing                    // Local
         );
 }
    static void Main(string[] args)
    {
        var excelApp = new Excel.Application();

        excelApp.Workbooks.Add();
        // VBA code goes here:
        excelApp.Columns["A:B"].Select
        excelApp.ActiveWorkbook.Worksheets("test").Sort.SortFields.Clear
        excelApp.ActiveWorkbook.Worksheets("test").Sort.SortFields.Add Key := Range["A:B"], _
        SortOn := Excel.XlSortOn.xlSortOnValues, Order := Excel.XlSortOrder.xlAscending, _
        DataOption := Excel.XlSortDataOption.xlSortNormal
        excelApp.ActiveWorkbook.Worksheets("test").Sort.SetRange Range["A:B"]
        excelApp.ActiveWorkbook.Worksheets("test").Sort.Header = Excel.XlYesNoGuess.xlGuess
                                                                 excelApp.ActiveWorkbook.Worksheets("test").Sort.MatchCase = False
                                                                                                                             excelApp.ActiveWorkbook.Worksheets("test").Sort.Orientation = Excel.Constants.xlTopToBottom
                                                                                                                                                                                           excelApp.ActiveWorkbook.Worksheets("test").Sort.SortMethod = Excel.XlSortMethod.xlPinYin
                                                                                                                                                                                                                                                        excelApp.ActiveWorkbook.Worksheets("test").Sort.Apply
                                                                                                                                                                                                                                                        excelApp.Visible = true;
    }
        public void ConvertAssessment(AssessmentConverter converter)
        {
            //verify if sheet exists
            try
            {
                var value = ActiveSheet.Range["A1"].Value2;
            }
            catch (Exception)
            {
                System.Windows.Forms.MessageBox.Show("Select assessment first before you start using plugin.", "Format error");
                return;
            }

            LoadAllProfiles();
            var techologyGroups = GetTechologyGroups(ProfilesDictionary);

            Assessment assessment = Assessment.Build(ActiveSheet, techologyGroups);

            if (assessment == null)
            {
                System.Windows.Forms.MessageBox.Show("Unable to convert assessment, unknown format.", "Format error");
                return;
            }

            EngineerProfile profile = LoadEngineerProfile(assessment);

            if (profile == null)
            {
                System.Windows.Forms.MessageBox.Show("Unable to detect a profile of assessment, ensure please: 1) profile configuration has keywords selected, 2) assessment has keywords.", "Format error");
                return;
            }
            string workbookName = ActiveWorkbook.Name;
            var    excelRows    = converter.Convert(assessment, profile);

            if (Workbooks == null)
            {
                System.Windows.Forms.MessageBox.Show("Plugin requires restart Excel.", "Internal error");
                return;
            }
            var newWorkBook = Workbooks.Add();
            var activeSheet = newWorkBook.ActiveSheet as Excel.Worksheet;
            //write header
            var worker = new ExcelWorker(activeSheet);

            //header section
            int row = 2;

            row = WriteHeader(profile, worker, row);
            //2 rows separation
            row += 2;
            //
            worker.SetAValue(row, profile.TechnicalAreaText).SetBold(true).SetColor(Assessment.OleHeaderColor).SetWidth(60).SetHeight(15);
            worker.SetValue(row, defaultScaleColumn, profile.ScaleText).SetBold(true).SetColor(Assessment.OleHeaderColor);

            row++;
            foreach (var item in excelRows)
            {
                worker.SetAValue(row, item.Technology).SetColor(item.Color).SetBold(item.isBold);
                worker.SetValue(row, defaultScaleColumn, item.Scale).SetColor(item.Color).SetBold(item.isBold);
                row++;
            }

            MsoFileDialogType dlgType = MsoFileDialogType.msoFileDialogSaveAs;

            Application.FileDialog[dlgType].InitialFileName = string.Format("{0}_{1}", converter.ConverterName, workbookName);
            Application.FileDialog[dlgType].Show();
            if (Application.FileDialog[dlgType].SelectedItems.Count > 0)
            {
                ActiveWorkbook.SaveAs(Application.FileDialog[dlgType].SelectedItems.Item(1), Excel.XlFileFormat.xlOpenXMLWorkbook);
            }
        }
Пример #6
0
        ///////////////////////////////////////////////////////////////////////////
        //
        //  METHODS
        //
        ///////////////////////////////////////////////////////////////////////////
        #region METHODS

        /// <summary>
        /// 변경된 모든 사항을 Workbook 파일에 저장합니다.
        /// </summary>
        public void Save()
        {
            ActiveWorkbook.Save();
        }