Esempio n. 1
0
        void MakeExcelFile(string shab_fname)
        {
            Excel._Application oExcel = new Excel.Application();

            string        dir           = comboBox1.SelectedItem.ToString() + "_" + dateTimePicker1.Value.Year + "-" + dateTimePicker1.Value.Month + "-" + dateTimePicker1.Value.Day;
            DirectoryInfo directoryinfo = Directory.CreateDirectory(Environment.CurrentDirectory + "\\" + dir);

            string WorkId = dataGridView1.CurrentRow.Cells["WorkId"].Value.ToString();

            string fname = Environment.CurrentDirectory + "\\" + dir + "\\" + WorkId + "_" + shab_fname;

            Excel::Application excelAplication = new Excel.Application();

            excelAplication.Visible = false;
            Excel::Workbook excelBook = excelAplication.Workbooks.Open(Environment.CurrentDirectory + "\\" + shab_fname, 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);
            // сохранение шаблона под другим именем, чтобы не испортить исходный файл

            Excel::Sheets    excelSheet     = excelBook.Worksheets;
            Excel::Worksheet excelWorksheet = (Excel::Worksheet)excelSheet.get_Item("f112ep"); // заполнение рабочего листа ланными из dataGridView

            excelWorksheet.Range["P37"].Value  = textBox_otkogo.Text;
            excelWorksheet.Range["AB39"].Value = textBox_adrotravitelya.Text;
            excelWorksheet.Range["T28"].Value  = dataGridView1.CurrentRow.Cells[0].Value;
            excelAplication.ActiveWorkbook.SaveAs(fname, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            excelAplication.Quit();

            if (checkBox2.Checked)
            {
                System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
                myProcess.StartInfo.FileName       = fname;
                myProcess.StartInfo.Verb           = "Open";
                myProcess.StartInfo.CreateNoWindow = false;
                myProcess.Start();
            }
        }
Esempio n. 2
0
        protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state)
        {
            PropertyDescriptor property = context.DataContext.GetProperties()[ExcelCreate.GetExcelAppTag];
            Excel::Application excelApp = property.GetValue(context.DataContext) as Excel::Application;

            try
            {
                Int32         sheetIndex   = SheetIndex.Get(context);
                string        oldSheetName = OldSheetName.Get(context);
                string        sheetName    = SheetName.Get(context);
                Excel::Sheets sheets       = excelApp.ActiveWorkbook.Sheets;
                if (oldSheetName != "" && oldSheetName != null)
                {
                    sheets.Item[oldSheetName].Name = sheetName;
                }
                else
                {
                    sheets.Item[sheetIndex].Name = sheetName;
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sheets);
                sheets = null;
                GC.Collect();
            }
            catch (Exception e)
            {
                new CommonVariable().realaseProcessExit(excelApp);
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "EXCEL重命名工作表执行过程出错", e.Message);
            }
            m_Delegate = new runDelegate(Run);
            return(m_Delegate.BeginInvoke(callback, state));
        }