示例#1
1
        public string GetReport()
        {
            try
            {
                _wordApp = new Word.Application();
                _doc = _wordApp.Documents.Add(_templateWordPath);

                _doc.Bookmarks["АрендаВЧас"].Range.Text = CostInHour.ToString("C0", new System.Globalization.CultureInfo("be-BY"));
                _doc.Bookmarks["Часов"].Range.Text = CountHours.ToString();
                _doc.Bookmarks["Арендатор"].Range.Text = Renter;
                _doc.Bookmarks["АрендаторПаспорт"].Range.Text = RenterPassport;
                _doc.Bookmarks["АрендаторТелефон"].Range.Text = RenterPhone;
                _doc.Bookmarks["АрендаторФИО"].Range.Text = RenterFIO;
                _doc.Bookmarks["Арендодатель"].Range.Text = LandLord;
                _doc.Bookmarks["АрендодательАдрес"].Range.Text = LandLordAddress;
                _doc.Bookmarks["АрендодательБанковскиеРеквизиты"].Range.Text = LandLordBank;
                _doc.Bookmarks["АрендодательЛицо"].Range.Text = LandLordFIO;
                _doc.Bookmarks["АрендодательНаименование"].Range.Text = LandLord;
                _doc.Bookmarks["АрендодательТелефон"].Range.Text = LandLordPhone;
                _doc.Bookmarks["Город"].Range.Text = City;
                _doc.Bookmarks["ГосНомер"].Range.Text = TransportRegNumber;
                _doc.Bookmarks["Дата"].Range.Text = Date.ToShortDateString();
                _doc.Bookmarks["ДатаНачалаДоговора"].Range.Text = ContractStartDate.ToShortDateString();
                _doc.Bookmarks["ДатаНеПозднее"].Range.Text = DateBeforeEnd.ToShortDateString();
                _doc.Bookmarks["ДатаОкончанияДоговора"].Range.Text = ContractEndDate.ToShortDateString();
                _doc.Bookmarks["НазваниеТС"].Range.Text = TransportName;
                _doc.Bookmarks["НазваниеТСКоммЭкс"].Range.Text = TransportName;
                _doc.Bookmarks["НазваниеТССубаренда"].Range.Text = TransportName;
                _doc.Bookmarks["Номер"].Range.Text = ContractNumber.ToString();
                _doc.Bookmarks["НомерКузова"].Range.Text = TransportEngineNumber;
                _doc.Bookmarks["НомерДвигателя"].Range.Text = TransportBodyNumber;
                _doc.Bookmarks["Пеня"].Range.Text = Fine.ToString();
                _doc.Bookmarks["СколькоЧеловек"].Range.Text = CrewCount.ToString();
                _doc.Bookmarks["СтоимостьАренды"].Range.Text = RentCost.ToString("C0", new System.Globalization.CultureInfo("be-BY"));
                _doc.Bookmarks["ТранспортноеСредство"].Range.Text = TransportName;
                _doc.Bookmarks["ЦелевоеНазначение"].Range.Text = TransportSpecialPurpose;

                _doc.SaveAs2(FileName: _documnetSavePath, FileFormat: Word.WdSaveFormat.wdFormatPDF);

                return _documnetSavePath;
            }
            catch (Exception)
            {
            }
            finally
            {
                _doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
                _wordApp.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
            }
            return null;
        }
示例#2
0
        private void MenuItem_Click_SaveDogovor(object sender, RoutedEventArgs e)
        {
            Word.Application word     = null;
            Word.Document    document = null;

            try
            {
                word = new Word.Application();
                var template = (object)(Environment.CurrentDirectory + "\\template_dogovor.dotx");
                document = word.Documents.Add(ref template, ref oMissing, ref oMissing, ref oMissing);

                SetTemplate(document);

                var date         = $"{DateTime.Now.Day}.{DateTime.Now.Month}.{DateTime.Now.Year}";
                var time         = DateTime.Now.ToLongTimeString().Replace(":", ".");
                var documentName = Environment.CurrentDirectory + $"\\Документ от {date} {time}.docx";
                SaveToDisk(document, documentName);
                MessageBox.Show($"Документ создан под именем {documentName}");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Save Error");
            }
            finally
            {
                document?.Close(ref oMissing, ref oMissing, ref oMissing);
                word?.Quit(ref oMissing, ref oMissing, ref oMissing);
            }
        }
示例#3
0
        /// <summary>
        /// Предоставляет класса для создания Word файла по шаблону.
        /// </summary>
        /// <param name="templateFile">Файл шаблона</param>
        public WordFile(string templateFile)
        {
            try
            {
                Application               = new Word.Application();
                Application.Visible       = false;
                Application.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;

                Document = Application.Documents.Open(templateFile);
            }
            catch (Exception ex)
            {
                Document?.Close();
                Application?.Quit();
                throw ex;
            }
        }
示例#4
0
 public static void ConvertWordDocumentToPdf(string srcFile, string dstFile)
 {
     Word.Application wordApp = null;
     Word.Document    wordDoc = null;
     try
     {
         wordApp = new Word.Application
         {
             DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
         };
         wordDoc = wordApp.Documents.OpenNoRepairDialog(srcFile, true, false, false);
         wordDoc.ExportAsFixedFormat(dstFile, Word.WdExportFormat.wdExportFormatPDF);
     }
     finally
     {
         wordDoc?.Close(SaveChanges: false);
         wordApp?.Quit();
     }
 }
示例#5
0
        public string GetReport()
        {
            try
            {
                _wordApp = new Word.Application();
                _doc = _wordApp.Documents.Add(_templateWordPath);

                _doc.Bookmarks["Адрес"].Range.Text = Address;
                _doc.Bookmarks["Дата"].Range.Text = Date.ToShortDateString();
                _doc.Bookmarks["Директор"].Range.Text = Director;
                _doc.Bookmarks["НаименованиеПредприятия"].Range.Text = Organization;
                _doc.Bookmarks["ОтФИО"].Range.Text = string.Format("{0} {1}. {2}.", LastName, Name.Substring(0, 1), MiddleName.Substring(0, 1));
                _doc.Bookmarks["ПаспортВыдан"].Range.Text = string.Format("{0} {1} г.", PassportIssuedBy, PassportIssuedDate.ToShortDateString());
                _doc.Bookmarks["ПаспортНомер"].Range.Text = PassportNumber;
                _doc.Bookmarks["ПаспортСерия"].Range.Text = PassportSeries;
                _doc.Bookmarks["Телефон"].Range.Text = Phone;
                _doc.Bookmarks["Услуга"].Range.Text = Service;
                _doc.Bookmarks["ФИО"].Range.Text = string.Format("{0} {1} {2}", LastName, Name, MiddleName);

                _doc.SaveAs2(FileName: _documnetSavePath, FileFormat: Word.WdSaveFormat.wdFormatPDF);

                return _documnetSavePath;
            }
            catch (Exception)
            {
            }
            finally
            {
                _doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
                _wordApp.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
            }
            return null;
        }
示例#6
0
        public bool DOCConvertToPDF(string sourcePath, string targetPath)
        {
            bool result = false;

            Word.WdExportFormat exportFormat = Word.WdExportFormat.wdExportFormatPDF;
            object paramMissing = Type.Missing;

            Word.Application wordApplication = new Word.Application();
            Word.Document    wordDocument    = null;
            try
            {
                object paramSourceDocPath  = sourcePath;
                string paramExportFilePath = targetPath;

                Word.WdExportFormat paramExportFormat           = exportFormat;
                bool paramOpenAfterExport                       = false;
                Word.WdExportOptimizeFor paramExportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint;
                Word.WdExportRange       paramExportRange       = Word.WdExportRange.wdExportAllDocument;
                int paramStartPage = 0;
                int paramEndPage   = 0;
                Word.WdExportItem paramExportItem = Word.WdExportItem.wdExportDocumentContent;
                bool paramIncludeDocProps         = true;
                bool paramKeepIRM = true;
                Word.WdExportCreateBookmarks paramCreateBookmarks = Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks;
                bool paramDocStructureTags   = true;
                bool paramBitmapMissingFonts = true;
                bool paramUseISO19005_1      = false;

                wordDocument = wordApplication.Documents.Open(
                    ref paramSourceDocPath, ref paramMissing, ref paramMissing,
                    ref paramMissing, ref paramMissing, ref paramMissing,
                    ref paramMissing, ref paramMissing, ref paramMissing,
                    ref paramMissing, ref paramMissing, ref paramMissing,
                    ref paramMissing, ref paramMissing, ref paramMissing,
                    ref paramMissing);

                if (wordDocument != null)
                {
                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                                                     paramExportFormat, paramOpenAfterExport,
                                                     paramExportOptimizeFor, paramExportRange, paramStartPage,
                                                     paramEndPage, paramExportItem, paramIncludeDocProps,
                                                     paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                                                     paramBitmapMissingFonts, paramUseISO19005_1,
                                                     ref paramMissing);
                }
                result = true;
            }
            catch
            {
                result = false;
            }
            finally
            {
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
                    wordDocument = null;
                }
                if (wordApplication != null)
                {
                    wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);
                    wordApplication = null;
                }
                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            return(result);
        }
示例#7
0
        public static void create_word_report(string i_Technical_Details, string i_Issues, string i_References, string i_Recommendations_for_mitigation, string i_Proof_of_Concept, List <string> i_pic, string vector, string test_number)
        {
            try
            {
                //Create an instance for word app
                Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application();
                //Set animation status for word application
                winword.ShowAnimation = false;
                //Set status for word application is to be visible or not.
                winword.Visible = false;
                //Create a missing variable for missing value
                object missing = System.Reflection.Missing.Value;
                //Create a new document
                Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing);
                //Add header into the document
                foreach (Microsoft.Office.Interop.Word.Section section in document.Sections)
                {
                    //Get the header range and add the header details.
                    Microsoft.Office.Interop.Word.Range headerRange = section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
                    headerRange.Fields.Add(headerRange, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage);
                    headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
                    headerRange.Font.ColorIndex           = Microsoft.Office.Interop.Word.WdColorIndex.wdGray25;
                    headerRange.Font.Size = 10;
                    headerRange.Text      = "-Confidential-";
                }

                string style    = "Normal";
                object objstyle = style;

                //Add paragraph with Heading 1 style
                Microsoft.Office.Interop.Word.Paragraph para1 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading1 = "Heading 1";
                para1.Range.set_Style(ref styleHeading1);
                para1.Range.Text = vector;
                para1.Range.InsertParagraphAfter();
                Microsoft.Office.Interop.Word.Range r1 = para1.Range;
                r1.set_Style(ref objstyle);

                //Add paragraph with Heading 1 style
                Microsoft.Office.Interop.Word.Paragraph para2 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading2 = "Heading 2";
                para2.Range.set_Style(ref styleHeading2);
                para2.Range.Text = "Overall Risk Level:";
                para2.Range.InsertParagraphAfter();
                Microsoft.Office.Interop.Word.Range r2 = para2.Range;
                r2.set_Style(ref objstyle);
                r2.Text = "";

                //Add paragraph with Heading 1 style
                Microsoft.Office.Interop.Word.Paragraph para3 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading3 = "Heading 4";
                para3.Range.set_Style(ref styleHeading3);
                para3.Range.Text = "Technical Details:";
                para3.Range.InsertParagraphAfter();
                Microsoft.Office.Interop.Word.Range r3 = para3.Range;
                r3.set_Style(ref objstyle);
                r3.Text = i_Technical_Details;
                r3.InsertParagraphAfter();


                //Add paragraph with Heading 2 style
                Microsoft.Office.Interop.Word.Paragraph para4 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading4 = "Heading 4";
                para4.Range.set_Style(ref styleHeading4);
                para4.Range.Text = "Issues:";
                para4.Range.InsertParagraphAfter();
                Microsoft.Office.Interop.Word.Range r4 = para4.Range;
                r4.set_Style(ref objstyle);
                r4.Text = i_Issues;
                r4.InsertParagraphAfter();


                //Add paragraph with Heading 1 style
                Microsoft.Office.Interop.Word.Paragraph para5 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading5 = "Heading 4";
                para5.Range.set_Style(ref styleHeading5);
                para5.Range.Text = "References:";
                para5.Range.InsertParagraphAfter();
                Microsoft.Office.Interop.Word.Range r5 = para5.Range;
                r5.set_Style(ref objstyle);
                r5.Text = i_References;
                r5.InsertParagraphAfter();

                //Add paragraph with Heading 1 style
                Microsoft.Office.Interop.Word.Paragraph para6 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading6 = "Heading 4";
                para6.Range.set_Style(ref styleHeading6);
                para6.Range.Text = "Recommendations for mitigation:";
                para6.Range.InsertParagraphAfter();
                Microsoft.Office.Interop.Word.Range r6 = para6.Range;
                r6.set_Style(ref objstyle);
                r6.Text = i_Recommendations_for_mitigation;
                r6.InsertParagraphAfter();

                //Add paragraph with Heading 1 style
                Microsoft.Office.Interop.Word.Paragraph para7 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading7 = "Heading 4";
                para7.Range.set_Style(ref styleHeading7);
                para7.Range.Text = "Proof of Concept:";
                para7.Range.InsertParagraphAfter();
                Microsoft.Office.Interop.Word.Range r7 = para7.Range;
                r7.set_Style(ref objstyle);
                r7.Text = i_Proof_of_Concept;
                r7.InsertParagraphAfter();

                for (int i = i_pic.Count - 1; 0 <= i; i--)
                {
                    string fileName          = i_pic[i];    //the picture file to be inserted
                    Object oMissed           = para5.Range; //the position you want to insert
                    Object oLinkToFile       = false;       //default
                    Object oSaveWithDocument = true;        //default
                    document.InlineShapes.AddPicture(fileName, ref oLinkToFile, ref oSaveWithDocument, ref oMissed);
                }
                //Save the document
                object filename = Path.GetDirectoryName(Path.GetFullPath(Process.GetCurrentProcess().ProcessName + ".exe")) + @"\TEMP\" + Process.GetCurrentProcess().ProcessName + "-" + test_number + "-Report.docx";
                document.SaveAs2(ref filename);
                document.Close(ref missing, ref missing, ref missing);
                document = null;
                winword.Quit(ref missing, ref missing, ref missing);
                winword = null;
            }
            catch (Exception ex)
            { }
        }
        private void ImprimirReportes(FinancieraCredito credito)
        {
            FinancieraDS financieraDS = new FinancieraDS();
            DateTime fechapago = dtpFechaInicio.DateTime.Date;
            decimal pagoPuntual = decimal.Round(Convert.ToDecimal(txtMontoPago.EditValue), 1);
            decimal pagoAtrasado = decimal.Round(
                (pagoPuntual + (pagoPuntual * Convert.ToDecimal(txtRecargoG.EditValue))), 1);
            for (int i = 0; i < Convert.ToInt32(txtNumPlazos.EditValue); i++)
            {
                switch (cboPlazo.Text)
                {
                    case "SEMANAL":
                        financieraDS.Tables[0].Rows.Add(new object[] { null, fechapago.AddDays(7).Date, pagoPuntual, pagoAtrasado });
                        fechapago = fechapago.AddDays(7).Date;
                        break;
                    case "QUINCENAL":
                        financieraDS.Tables[0].Rows.Add(new object[] { null, fechapago.AddDays(15).Date, pagoPuntual, pagoAtrasado });
                        fechapago = fechapago.AddDays(15).Date;
                        break;
                    case "MENSUAL":
                        financieraDS.Tables[0].Rows.Add(new object[] { null, fechapago.AddMonths(1).Date, pagoPuntual, pagoAtrasado });
                        fechapago = fechapago.AddMonths(1).Date;
                        break;
                }

            }
            XrptControlPagosGrupal control = new XrptControlPagosGrupal();
            control.DataSource = financieraDS.Tables[0];
            control.DatosGrupo.DataSource = credito;
            control.MontoCredito.Value = Convert.ToDecimal(txtCantidadCredito.EditValue);
            control.DiasPago.Value = string.Format("LOS {0} DE CADA SEMANA (CON PRORROGA HASTA EL {1})", dtpFechaInicio.DateTime.ToString("dddd").ToUpper(), dtpFechaInicio.DateTime.AddDays(Convert.ToInt32(txtProrrogaG.EditValue)).ToString("dddd").ToUpper());
            //control.ShowPreviewDialog();
            control.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
            control.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));

            foreach (DataRow fila in dtIntegrantesGrupo.Rows)
            {
                fechapago = dtpFechaInicio.DateTime.Date;
                financieraDS.Tables[1].Rows.Clear();
                financieraDS.Tables[1].AcceptChanges();
                financieraDS.Tables[1].Columns["Pago"].AutoIncrementSeed = -1;
                financieraDS.Tables[1].Columns["Pago"].AutoIncrementStep = -1;
                financieraDS.Tables[1].Columns["Pago"].AutoIncrementSeed = 1;
                financieraDS.Tables[1].Columns["Pago"].AutoIncrementStep = 1;
                for (int i = 0; i < Convert.ToInt32(txtNumPlazos.EditValue); i++)
                {
                    switch (cboPlazo.Text)
                    {
                        case "SEMANAL":
                            financieraDS.Tables[1].Rows.Add(new[] { fila[1], fila[8], fila[9], fila[3], fechapago.AddDays(7).Date, null });
                            fechapago = fechapago.AddDays(7).Date;
                            break;
                        case "QUINCENAL":
                            financieraDS.Tables[1].Rows.Add(new[] { fila[1], fila[8], fila[9], fila[3], fechapago.AddDays(15).Date, null });
                            fechapago = fechapago.AddDays(15).Date;
                            break;
                        case "MENSUAL":
                            financieraDS.Tables[1].Rows.Add(new[] { fila[1], fila[8], fila[9], fila[3], fechapago.AddMonths(1).Date, null });
                            fechapago = fechapago.AddMonths(1).Date;
                            break;
                    }
                }
                XrptControlPagosPersonal control1 = new XrptControlPagosPersonal();
                control1.DataSource = financieraDS.Tables[1];
                control1.DatosGrupo.DataSource = credito;
                control1.MontoCredito.Value = Convert.ToDecimal(txtCantidadCredito.EditValue);
                control1.DiasPago.Value = string.Format("LOS {0} DE CADA SEMANA (CON PRORROGA HASTA EL {1})", dtpFechaInicio.DateTime.ToString("dddd").ToUpper(), dtpFechaInicio.DateTime.AddDays(Convert.ToInt32(txtProrrogaG.EditValue)).ToString("dddd").ToUpper());
                control1.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
                //financieraDS.Tables[2].Rows.Add(new[] { fila[1],CbToBytesA((Bitmap)fila[5]), CbToBytesA((Bitmap)fila[6]), CbToBytesA((Bitmap)fila[7])});
            }
            financieraDS.Tables[1].Rows.Clear();
            foreach (DataRow fila in dtIntegrantesGrupo.Rows)
            {
                financieraDS.Tables[1].Rows.Add(new[] { fila[1], fila[8], fila[9], fila[3], fechapago.AddDays(7).Date, null });
            }
            XrptHistrorialPagoPersonal historial = new XrptHistrorialPagoPersonal();
            historial.DataSource = financieraDS;
            historial.DatosGrupo.DataSource = credito;
            historial.MontoCredito.Value = Convert.ToDecimal(txtCantidadCredito.EditValue);
            historial.DiasPago.Value = dtpFechaInicio.DateTime.ToString("dddd").ToUpper();
            XRSubreport detailReport = historial.Bands[BandKind.ReportHeader].FindControl("xrSubreport1", true) as XRSubreport;
            detailReport.ReportSource.DataSource = financieraDS.Tables[1];

            //for (int i = 0; i < dtIntegrantesGrupo.Rows.Count; i++)
            //{
            historial.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
            historial.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
            //}
            XrptPoderCobranza poder = new XrptPoderCobranza();
            poder.DataSource = credito;
            //poder.ShowPreviewDialog();
            poder.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
            XrptReglamento reglamento = new XrptReglamento();
            reglamento.DataSource = credito;
            reglamento.BaseLetras.Value = String.Format("{0} ({1}) ", txtBase.Text, Conversiones.NumeroALetras(txtBase.EditValue.ToString()));
            reglamento.Presidenta.Value =
                credito.FinancieraGrupo.FinancieraGruposDetalles.First(p => p.Tipo == "PRESIDENTA").FinancieraCliente.Nombre;
            reglamento.Tesorera.Value =
                credito.FinancieraGrupo.FinancieraGruposDetalles.First(p => p.Tipo == "TESORERA").FinancieraCliente.Nombre;
            reglamento.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
            reglamento.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
            //reglamento.ShowPreviewDialog();
            //control.Pages.AddRange(historial.Pages);
            this.oWord = new Word.Application();
            this.oWord.Visible = false;

            // Ubicación de la plantilla en el disco duro
            oDoc = oWord.Documents.Add(Application.StartupPath + @"\Reglamento.dotx");
            oDoc.Bookmarks["Sucursal"].Range.Text = new clsModificarConfiguracion().configGetValue("Empresa");
            oDoc.Bookmarks["Direccion"].Range.Text = new clsModificarConfiguracion().configGetValue("Direccion");
            object m = System.Reflection.Missing.Value;
            object copies = 2;
            oWord.ActivePrinter = new clsModificarConfiguracion().configGetValue("ImpresoraBoletas");
            oWord.PrintOut(m, m, m, m, m, m, m, copies, m, m, m, m, m, m, m, m, m, m, m);
            object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
            oDoc.Close(ref doNotSaveChanges, m, m);

            //////XrptFotosGrupos fotos=new XrptFotosGrupos {DataSource = financieraDS.Tables[2]};
            ////////fotos.ShowPreviewDialog(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
            //////fotos.Print(new clsModificarConfiguracion().configGetValue("ImpresoraBoletas"));
        }
示例#9
0
        public static bool CreateWordsDocuments(object docPath, string savaAs, string docName, DataRowView[] candidats, string presedinte, string membru1, string membru2)
        {
            int candiLength = candidats.Length;
            Console.WriteLine("LENGTH" + candiLength);

            object missing = Missing.Value;
            //      Word.Document[] adocs = new Word.Document[candidats.Length];

            Word.Document aDoc = null;
            Word.Application wordApp = null;

            try{
                for (int i = 0; i < candiLength; ++i)
                {

                    aDoc = new Word.Document();
                    wordApp = new Word.Application();
                    DataRow candidat = candidats[i].Row;
                    List<int> processesbeforegen = getRunningProcesses();
                    string savePath =(string) savaAs + docName + " " + candidat["Nume"] + "_" + candidat["Prenume"] ;

                    if (File.Exists((string)docPath))
                    {
                        Console.WriteLine("Fajlnal vagyok");

                        object readOnly = false; //default
                        object isVisible = false;

                        wordApp.Visible = false;

                        aDoc = wordApp.Documents.Open(ref docPath, ref missing, ref readOnly,
                                                    ref missing, ref missing, ref missing,
                                                    ref missing, ref missing, ref missing,
                                                    ref missing, ref missing, ref missing,
                                                    ref missing, ref missing, ref missing, ref missing);

                        aDoc.Activate();

                        Console.WriteLine("megnyitva");

                        //Find and replace:
                        FindAndReplace(wordApp, "{NrMatricol}", candidat["NrMatricol"]);
                        FindAndReplace(wordApp, "{Nume}", candidat["Nume"]);
                        FindAndReplace(wordApp, "{Prenume}", candidat["Prenume"]);
                        FindAndReplace(wordApp, "{Tata}", candidat["Tata"]);
                        FindAndReplace(wordApp, "{Mama}", candidat["Mama"]);
                        FindAndReplace(wordApp, "{CNP>", candidat["CNP"]);
                        FindAndReplace(wordApp, "{DataNasterii}", candidat["DataNasterii"]);
                        FindAndReplace(wordApp, "{LoculNasterii}", candidat["LoculNasterii"]);
                        FindAndReplace(wordApp, "{Strada}", candidat["Strada"]);
                        FindAndReplace(wordApp, "{Nr}", candidat["Nr"]);
                        FindAndReplace(wordApp, "{Bloc}", candidat["Bloc"]);
                        FindAndReplace(wordApp, "{Scara}", candidat["Scara"]);
                        FindAndReplace(wordApp, "{Ap}", candidat["Ap"]);
                        FindAndReplace(wordApp, "{Localitate}", candidat["Localitate"]);
                        FindAndReplace(wordApp, "{Judet}", candidat["Judet"]);
                        FindAndReplace(wordApp, "{Cp}", candidat["Cp"]);
                        FindAndReplace(wordApp, "{Telefon}", candidat["Telefon"]);
                        FindAndReplace(wordApp, "{Studii}", candidat["Studii"]);
                        FindAndReplace(wordApp, "{Profesia}", candidat["Profesia"]);
                        FindAndReplace(wordApp, "{LocMunca}", candidat["LocMunca"]);
                        FindAndReplace(wordApp, "{Presedinte}", presedinte);
                        FindAndReplace(wordApp, "{Membru1}", membru1);
                        FindAndReplace(wordApp, "{Membru2}", membru2);

                        Console.WriteLine("cserelgetes");

                        object saveFullPath = savePath;

                        aDoc.SaveAs2(ref saveFullPath, ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing);

                        //Close Document:

                        aDoc.Close(ref missing, ref missing, ref missing);
                        wordApp.Quit(false);

                        Marshal.FinalReleaseComObject(wordApp);

                        aDoc = null;
                        wordApp = null;
                        List<int> processesaftergen = getRunningProcesses();
                        Console.WriteLine("COUNT > " + processesbeforegen.Count + "  " + processesaftergen.Count);
                        killProcesses(processesbeforegen, processesaftergen);
                    }
                    else
                    {
                        System.Windows.MessageBox.Show("file dose not exist.");
                        return false;
                    }
                }

            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show("Error occured at Report!\n"+ex.Message);
                return false;
            }
            finally
            {
                if (aDoc != null) aDoc.Close(ref missing, ref missing, ref missing);
                if (wordApp != null)
                {
                    wordApp.Quit(ref missing, ref missing, ref missing);
                    Marshal.FinalReleaseComObject(wordApp);
                }

            }

            return true;
        }
示例#10
0
        public void zhenggao2018()
        {
            if (!File.Exists(workPath + templateFileName))
            {
                MessageBox.Show("File cannot found");
                return;
            }

            try
            {
                thisWorkBook = excelApp.Workbooks.Open(workPath + sumFileName);
            }
            catch
            {
                if (thisWorkBook != null)
                {
                    thisWorkBook.Close(false);
                }
                excelApp.Quit();
                MessageBox.Show("Excel Path not found");
                return;
            }

            try
            {
                thisWorkSheet = thisWorkBook.Worksheets["Sheet1"];
            }
            catch
            {
                thisWorkBook.Close(false);
                excelApp.Quit();
                MessageBox.Show("Sheet not found");
                return;
            }

            try
            {
                doc = wordApp.Documents.Open(workPath + templateFileName);
            }
            catch
            {
                if (doc != null)
                {
                    doc.Close();
                }
                MessageBox.Show("Word Path not found");
                return;
            }

            try
            {
                ranges = thisWorkSheet.UsedRange;

                /*
                 * string Name = "";
                 * string Year = "";
                 * string Month = "";
                 */

                PathHeader = $@"{workPath}result\";
                WriteLine(PathHeader);

                if (!Directory.Exists(PathHeader))
                {
                    Directory.CreateDirectory(PathHeader);
                }

                for (int i = 3; i <= ranges.Rows.Count; i++)
                {
                    foreach (Word.Variable var in doc.Variables)
                    {
                        //WriteLine(var.Name);
                        var.Value = "";
                    }


                    Dictionary <string, string> dict = new Dictionary <string, string>();

                    for (int j = 1; j <= KeyNum; j++)
                    {
                        string dictKey   = ranges.Cells[2, j].Text;
                        string dictValue = ranges.Cells[i, j].Text;
                        WriteLine($"dictKey:{dictKey}, dictValue:{dictValue}");
                        dict.Add(dictKey, dictValue);
                    }

                    if (!(dict["Name"] == "" || dict["Name"] == null))
                    {
                        WriteLine("OK");
                        DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo
                        {
                            ShortDatePattern = "yyyy-MM-dd"
                        };
                        DateTime dt = Convert.ToDateTime(dict["Date1"], dtFormat);

                        doc.Variables.Add("Name", dict["Name"]);
                        doc.Variables.Add("Year", dt.Year);
                        doc.Variables.Add("Month", dt.Month);
                        //doc.Variables.Add("Date", dict["Date2"]);
                        doc.Variables.Add("Date", " ");


                        doc.Fields.Update();

                        doc.SaveAs2($@"{PathHeader}{dt.Year}-{dt.Month}-{dict["Name"]}.docx", FileFormat: Word.WdSaveFormat.wdFormatXMLDocument, LockComments: false, CompatibilityMode: 15);
                    }
                }
            }
            finally
            {
                doc.Close();
                thisWorkBook.Close(false);
                excelApp.Quit();
            }
        }
示例#11
0
        public void dblcExportWord(string templateFile, string newfileName)
        {
            #region 生成word应用程序对象

            object obj = System.Reflection.Missing.Value;
            Word.Application app = new Word.Application();

            //模板文件
            string TemplateFile = templateFile;

            //生成的具有模板样式的新文件
            string newFileName = newfileName;

            //模板文件拷贝到新文件
            File.Copy(TemplateFile, newFileName);

            //生成documnet对象
            //Word.Document doc=app.Documents.Add(ref obj,ref obj,ref obj,ref,obj,ref obj);
            Word.Document doc = new Word.Document();
            object Obj_FileName = newFileName;
            object Visible = false;
            object ReadOnly = false;
            object missing = System.Reflection.Missing.Value;

            //打开文件
            doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref Visible,
                ref missing, ref missing, ref missing,
                ref missing);
            #endregion

            try
            {

                //生成word程序对象

                doc.Activate();

                //-----------数据煤矿名称读取操作----------
                string strsqltitle = "select 煤矿名称 from 煤矿基本信息表 ";
                DataTable dt = db.Query(strsqltitle);
                DataRow dr = dt.Rows[0];
                string inform = dr["煤矿名称"].ToString();
                //----------------------------------------------------------
                //获取当前系统时间不显示秒
                DateTime currentTime = System.DateTime.Now;
                string strnowtime = currentTime.ToString("f");

                //获取当前用户
                string currentuser = login.REAL_NAME;

                #region 导出报表
                //---------------------取时间段-------------------
                string date_begin_hourdblc = (comboBox1.Text == "") ? "0" : comboBox1.Text;
                string date_begin_mindblc = (comboBox3.Text == "") ? "0" : comboBox3.Text;
                string date_over_hourdblc = (comboBox2.Text == "") ? "23" : comboBox2.Text;
                string date_over_mindblc = (comboBox4.Text == "") ? "59" : comboBox4.Text;

                string date_begindblc = dateTimePicker3.Text.ToString();
                date_begindblc += " " + date_begin_hourdblc + ":" + date_begin_mindblc;
                date_begindblc += ":00";
                string date_overdblc = dateTimePicker4.Text.ToString();
                date_overdblc += " " + date_over_hourdblc + ":" + date_over_mindblc;
                date_overdblc += ":00";
                DateTime d_begindblc = DateTime.Parse(date_begindblc);
                DateTime d_overdblc = DateTime.Parse(date_overdblc);

                //----赋值dblc数据到公共书签的位置---------------------
                doc.Bookmarks.get_Item(ref BookMark_db[0]).Range.Text = inform;
                doc.Bookmarks.get_Item(ref BookMark_db[1]).Range.Text = date_begindblc;
                doc.Bookmarks.get_Item(ref BookMark_db[2]).Range.Text = date_overdblc;
                doc.Bookmarks.get_Item(ref BookMark_db[3]).Range.Text = strnowtime;
                doc.Bookmarks.get_Item(ref BookMark_db[4]).Range.Text = currentuser;
                //-------------------------------------------------------------

                //---------------取传感器编号与所选传感器列表相对应----------
                string cgqbh = "";
                //int row_num = 0;
                int i;
                for (i = 0; i < dataGridView2.Rows.Count; i++)
                {
                    cgqbh = dataGridView2.Rows[i].Cells["传感器编号"].Value.ToString();
                    int dblcid = -1;
                    dblcfillword(cgqbh, ref doc, i, d_begindblc, d_overdblc, out dblcid);

                    string sql = "SELECT  顶板离层传感器编号,离层data1 as data1,离层data2 as data2 FROM 顶板离层传感器信息表 WHERE  顶板离层ID=" + dblcid;
                    DataTable dtdblc = db.Query(sql);
                    if (dtdblc.Rows.Count > 0)
                    {
                        doc.Bookmarks.get_Item(ref BookMark_db[i + 14]).Range.Text = dtdblc.Rows[0]["data" + Tools.conn_order(cgqbh, "深基点").ToString()].ToString();
                        doc.Bookmarks.get_Item(ref BookMark_db[i + 23]).Range.Text = dtdblc.Rows[0]["data" + Tools.conn_order(cgqbh, "浅基点").ToString()].ToString();
                    }

                }

                //------------------------------------------------------------------------------------
                doc.Bookmarks.get_Item(ref BookMark_db[59]).Select();
                app.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                //app.Selection.ParagraphFormat.AutoAdjustRightIndent=;
                InlineShape lipt = app.Selection.InlineShapes.AddPicture(@"D:\b.bmp", ref missing, ref missing, ref missing);

                ////-----------------------添加图片-----------------------------------------
                //doc.Bookmarks.get_Item(ref BookMark_zz[47]).Select();
                //app.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                //app.Selection.InlineShapes.AddPicture(@"E:\dzy\picture\12.png", ref missing, ref missing, ref missing);

                //////判断指定的图片是否存在
                ////if (File.Exists(@"..\..\sources\images\12.png"))
                ////{
                ////    File.Delete(@"..\..\sources\images\12.png");
                ////}

                ////-------------------------------------------------------------------------------------

                #endregion

                MessageBox.Show("生成“" + newFileName + "”成功!");
            }

            catch (Exception Ex)
            {
                MessageBox.Show(Ex.ToString());
                return;
            }

            finally
            {
                //输出完毕后关闭doc对象
                object IsSave = true;
                doc.Close(ref IsSave, ref missing, ref missing);
            }
        }
        public void SaveOutputPrice(BoundReportModel model)
        {
            if (File.Exists(model.FileName))
            {
                File.Delete(model.FileName);
            }

            var winword = new Microsoft.Office.Interop.Word.Application();

            try
            {
                object missing = System.Reflection.Missing.Value;

                Microsoft.Office.Interop.Word.Document document =
                    winword.Documents.Add(ref missing, ref missing, ref missing, ref missing);

                var paragraph = document.Paragraphs.Add(missing);
                var range     = paragraph.Range;

                range.Text = "Прайс изделий";

                var font = range.Font;
                font.Size = 16;
                font.Name = "Times New Roman";
                font.Bold = 1;

                var paragraphFormat = range.ParagraphFormat;
                paragraphFormat.Alignment       = WdParagraphAlignment.wdAlignParagraphCenter;
                paragraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;
                paragraphFormat.SpaceAfter      = 10;
                paragraphFormat.SpaceBefore     = 0;

                range.InsertParagraphAfter();

                var Outputs = context.Outputs.ToList();

                var paragraphTable = document.Paragraphs.Add(Type.Missing);
                var rangeTable     = paragraphTable.Range;
                var table          = document.Tables.Add(rangeTable, Outputs.Count, 2, ref missing, ref missing);

                font      = table.Range.Font;
                font.Size = 14;
                font.Name = "Times New Roman";

                var paragraphTableFormat = table.Range.ParagraphFormat;
                paragraphTableFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;
                paragraphTableFormat.SpaceAfter      = 0;
                paragraphTableFormat.SpaceBefore     = 0;

                for (int i = 0; i < Outputs.Count; ++i)
                {
                    table.Cell(i + 1, 1).Range.Text = Outputs[i].OutputName;
                    table.Cell(i + 1, 2).Range.Text = Outputs[i].Price.ToString();
                }

                table.Borders.InsideLineStyle  = WdLineStyle.wdLineStyleInset;
                table.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleSingle;

                paragraph = document.Paragraphs.Add(missing);
                range     = paragraph.Range;

                range.Text = "Дата: " + DateTime.Now.ToLongDateString();

                font      = range.Font;
                font.Size = 12;
                font.Name = "Times New Roman";

                paragraphFormat                 = range.ParagraphFormat;
                paragraphFormat.Alignment       = WdParagraphAlignment.wdAlignParagraphRight;
                paragraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;
                paragraphFormat.SpaceAfter      = 10;
                paragraphFormat.SpaceBefore     = 10;

                range.InsertParagraphAfter();

                object fileFormat = WdSaveFormat.wdFormatXMLDocument;
                document.SaveAs(model.FileName, ref fileFormat, ref missing,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing);
                document.Close(ref missing, ref missing, ref missing);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                winword.Quit();
            }
        }
        private Dictionary <string, string> FindByRegexTopics(Regex regex, int beginIndex, int endIndex)
        {
            Dictionary <string, string> resultMap = new Dictionary <string, string>();

            try
            {
                Word.Range range          = table.Range;
                Word.Cells cells          = range.Cells;
                string     lastDiscipline = null;
                string     nextDiscipline = null;
                for (int i = beginIndex; i <= endIndex; i++)
                {
                    Word.Cell  cell        = cells[i];
                    Word.Range updateRange = cell.Range;
                    try
                    {
                        if (regex.IsMatch(updateRange.Text))
                        {
                            nextDiscipline = updateRange.Text;
                            if (lastDiscipline == null)
                            {
                                lastDiscipline = nextDiscipline;
                            }
                            if (resultMap.ContainsKey(lastDiscipline) && resultMap[lastDiscipline].IndexOf(',') > 0)
                            {
                                string value;
                                resultMap.TryGetValue(lastDiscipline, out value);
                                value = value.Substring(0, value.IndexOf(','));
                                resultMap[lastDiscipline] = value + "," + i;
                                resultMap.Add(nextDiscipline, i.ToString());
                            }
                            else if (resultMap.ContainsKey(lastDiscipline))
                            {
                                string value;
                                resultMap.TryGetValue(lastDiscipline, out value);
                                resultMap[lastDiscipline] = value + "," + i;
                                resultMap.Add(nextDiscipline, i.ToString());
                            }
                            else
                            {
                                resultMap.Add(nextDiscipline, i.ToString());
                            }
                        }
                        lastDiscipline = nextDiscipline;
                    }
                    catch (Exception e)
                    {
                    }
                }
                string lastValue;
                resultMap.TryGetValue(lastDiscipline, out lastValue);
                resultMap[lastDiscipline] = lastValue + "," + endIndex;
            }
            catch (Exception e)
            {
                doc.Close();
                new ExceptionWindow()
                .Show();
            }
            return(resultMap);
        }
示例#14
0
        public static string CreateWordFile(string fielpath, string content)
        {
            string message = "";

            try
            {
                object path;                 //文件路径变量
                string strContent;           //文本内容变量
                Object Nothing  = System.Reflection.Missing.Value;
                object filename = fielpath;  //文件保存路径
                // path = Environment.CurrentDirectory + "\\CNSI_" + DateTime.Now.ToLongDateString() + ".doc";
                //创建Word文档
                Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
                Microsoft.Office.Interop.Word.Document    WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);


                #region 行间距与缩进、文本字体、字号、加粗、斜体、颜色、下划线、下划线颜色设置
                WordApp.Selection.ParagraphFormat.LineSpacing = 16f;//设置文档的行间距
                // WordApp.Selection.ParagraphFormat.FirstLineIndent = 80;//首行缩进的长度

                object unite = MSWord.WdUnits.wdStory;
                WordApp.Selection.EndKey(ref unite, ref Nothing);       //将光标移到文本末尾
                WordApp.Selection.ParagraphFormat.FirstLineIndent = 30; //取消首行缩进的长度
                strContent = "江津区应急广播消息文本\n";
                WordDoc.Paragraphs.Last.Range.Font.Name = "微软雅黑";
                WordDoc.Paragraphs.Last.Range.Font.Size = 20;
                WordDoc.Paragraphs.Last.Range.Text      = strContent;


                WordApp.Selection.ParagraphFormat.LineSpacing     = 10f; //设置文档的行间距
                WordApp.Selection.ParagraphFormat.FirstLineIndent = 100; //取消首行缩进的长度
                strContent = content + "\n";                             //
                WordApp.Selection.EndKey(ref unite, ref Nothing);        //这一句不加,有时候好像也不出问题,不过还是加了安全
                WordDoc.Paragraphs.Last.Range.Font.Size = 15;
                WordDoc.Paragraphs.Last.Range.Text      = strContent;

                #endregion

                object count  = 14;
                object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdLine;             //换一行;
                WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);           //移动焦点
                WordApp.Selection.TypeParagraph();                                        //插入段落
                WordDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString(); //“落款”
                WordDoc.Paragraphs.Last.Alignment  = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;

                //看是不是要打印
                //wordDoc.PrintOut();

                //文件保存
                WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
                WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
                WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
                Console.WriteLine("文档生成成功!");

                #region//再次打开这个文档
                // MSWord.Application app = new MSWord.Application();
                // MSWord.Document doc = null;
                // try
                // {
                //    object unknow = Type.Missing;
                //    app.Visible = true;
                //    string str = Environment.CurrentDirectory + "\\MyWord_Print.doc";
                //    object file = str;
                //    doc = app.Documents.Open(ref file,
                //        ref unknow, ref unknow, ref unknow, ref unknow,
                //        ref unknow, ref unknow, ref unknow, ref unknow,
                //        ref unknow, ref unknow, ref unknow, ref unknow,
                //        ref unknow, ref unknow, ref unknow);
                //    string temp = doc.Paragraphs[1].Range.Text.Trim();
                //}
                //catch (Exception ex)
                //{
                //    Console.WriteLine(ex.Message);
                //}
                //WordDoc = doc;
                //WordDoc.Paragraphs.Last.Range.Text += "我真的不打算再写了,就写这么多吧";
                #endregion
            }
            catch (Exception ex)
            {
                message = "保存失败!";
                Console.WriteLine(ex.Message);
            }
            return(message);
        }
        static void Main(string[] args)
        {
            string        finalHTML;
            List <string> listString = new List <string>();
            object        True       = true;

            Word.Application app      = new Word.Application();
            Word.Document    doc      = new Word.Document();
            string           fileName = @"D:\Programming\C#\Word To Markup Converter\hello world.docx";

            doc = app.Documents.Open(fileName, Type.Missing, True);

            //foreach (Word.Paragraph para in doc.Paragraphs)
            //{
            //    para.Range.Copy();
            //    stripClasses(Clipboard.GetText(TextDataFormat.Html));
            //}
            Word.ListParagraphs listpara = doc.ListParagraphs;
            IEnumerator         ienum    = doc.ListParagraphs.GetEnumerator();
            List <Tuple <string, Word.WdListType, int> > items = new List <Tuple <string, Word.WdListType, int> >();

            while (ienum.MoveNext())
            {
                Word.Range r = ((Word.Paragraph)ienum.Current).Range;
                items.Add(new  Tuple <string, Word.WdListType, int>(r.Text, r.ListFormat.ListType, r.ListFormat.ListLevelNumber));
            }

            items.Reverse();
            if (items.Count > 0)
            {
                listString = createList(items);
            }
            doc.SelectAllEditableRanges();
            doc.Range().Copy();

            string returnHTMLText = null;



            if (Clipboard.ContainsText(TextDataFormat.Html))
            {
                Console.WriteLine("html");
                returnHTMLText = Clipboard.GetText(TextDataFormat.Html);
                //Console.WriteLine(returnHTMLText);
                stripClasses(returnHTMLText, listString);
            }
            else
            {
                Console.WriteLine("no html");
                //Console.WriteLine(doc.);
                //returnHTMLText = Clipboard.GetText(TextDataFormat.Html);
            }

            doc.Close();
            app.Quit();
            Console.WriteLine("closed");
            while (true)
            {
                ;
            }
        }
        public void countpage(string printPCLFile)
        {
            string docFile = printPCLFile;
            string msg     = "";

            try
            {
                if (docFile.ToLower().EndsWith("pdf"))
                {
                    iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(docFile);
                    int num = reader.NumberOfPages;

                    msg  = num + "页";
                    mnum = num;
                }
                if (docFile.ToLower().EndsWith("jpg"))
                {
                    mnum = 1;
                }
                if (docFile.ToLower().EndsWith("xlsx") || docFile.ToLower().EndsWith("xlsm"))
                {
                    string path  = System.IO.Directory.GetCurrentDirectory();
                    string sPath = path + "\\temp\\xlsx";

                    // MessageBox.Show(docFile+"\n"+ sPath, "sPath");
                    if (XLSConvertToPDF(docFile, sPath))
                    {
                        string pdffile = sPath + ".pdf";
                        // MessageBox.Show(pdffile,"pdffile");
                        iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(pdffile);
                        int num = reader.NumberOfPages;
                        msg  = num + "页";
                        mnum = num;
                    }
                }
                if (docFile.ToLower().EndsWith("doc") || docFile.ToLower().EndsWith("docx"))
                {
                    //this.textFilename.Text = msg;
                    object wordFile = docFile;
                    object oMissing = Missing.Value;
                    //自定义object类型的布尔值
                    object oTrue  = true;
                    object oFalse = false;

                    object doNotSaveChanges = WdSaveOptions.wdDoNotSaveChanges;
                    //定义WORD Application相关
                    Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();
                    //WORD程序不可见
                    appWord.Visible = false;
                    //不弹出警告框
                    appWord.DisplayAlerts = WdAlertLevel.wdAlertsNone;
                    //打开要打印的文件
                    Microsoft.Office.Interop.Word.Document doc = appWord.Documents.Open(
                        ref wordFile,
                        ref oMissing,
                        ref oTrue,
                        ref oFalse,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing,
                        ref oMissing);
                    // 计算Word文档页数 
                    WdStatistic stat = WdStatistic.wdStatisticPages;
                    num = doc.ComputeStatistics(stat, ref oMissing);//.ComputeStatistics(stat, ref Nothing); 
                    //打印完关闭WORD文件
                    doc.Close(ref doNotSaveChanges, ref oMissing, ref oMissing);
                    //退出WORD程序
                    appWord.Quit(ref oMissing, ref oMissing, ref oMissing);
                    doc     = null;
                    appWord = null;
                    msg     = num + "页";
                    mnum    = num;
                }
            }
            catch (System.Exception ex)
            {
                msg = ex.Message;
            }
        }
示例#17
0
        public string GetReport()
        {
            try
            {
                _wordApp = new Word.Application();
                _doc = _wordApp.Documents.Add(_templateWordPath);

                _doc.Bookmarks["Арендатор"].Range.Text = Renter;
                _doc.Bookmarks["АрендаторФИО"].Range.Text = RenterFIO;
                _doc.Bookmarks["Арендодатель"].Range.Text = LandLord;
                _doc.Bookmarks["АрендодательФИО"].Range.Text = Director;
                _doc.Bookmarks["Город"].Range.Text = City;
                _doc.Bookmarks["ГосНомер1"].Range.Text = TransportRegNumber;
                _doc.Bookmarks["ГосНомер2"].Range.Text = TransportRegNumber;
                _doc.Bookmarks["Дата"].Range.Text = Date.ToShortDateString();
                _doc.Bookmarks["ДатаДоговора"].Range.Text = ContractDate.ToShortDateString();
                _doc.Bookmarks["Директор"].Range.Text = LandLordFIO;
                _doc.Bookmarks["Номер"].Range.Text = Number.ToString();
                _doc.Bookmarks["Транспорт1"].Range.Text = TransportName;
                _doc.Bookmarks["Транспорт2"].Range.Text = TransportName;

                _doc.SaveAs2(FileName: _documnetSavePath, FileFormat: Word.WdSaveFormat.wdFormatPDF);

                return _documnetSavePath;
            }
            catch (Exception)
            {
            }
            finally
            {
                _doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
                _wordApp.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
            }
            return null;
        }
        public void ExclusivelockCheck()
        {
            // Upload a document
            SharepointClient.UploadFile(Word);
            // Refresh web address
            Browser.Goto(Browser.DocumentAddress);
            // Find document on site
            IWebElement document = Browser.webDriver.FindElement(By.CssSelector("a[href*='" + filename + ".docx']"));

            // Open it by word
            Browser.RClick(document);
            Browser.Wait(By.LinkText("Open in Word"));
            var elementOpenInWord = Browser.webDriver.FindElement(By.LinkText("Open in Word"));

            Browser.Click(elementOpenInWord);
            // Close Microsoft office dialog and access using expected account
            Utility.CloseMicrosoftOfficeDialog();
            Utility.WaitForDocumentOpenning(filename);
            string username = ConfigurationManager.AppSettings["UserName"];
            string password = ConfigurationManager.AppSettings["Password"];

            Utility.OfficeSignIn(username, password);
            Utility.OfficeSignIn(username, password);
            Utility.WaitForDocumentOpenning(filename);
            // Check it out in info page
            Utility.CheckOutOnOpeningWord(filename);
            // Close word process
            Word.Application wordToOpen = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
            Word.Document    oDocument  = (Word.Document)wordToOpen.ActiveDocument;
            oDocument.Close();
            Utility.DeleteDefaultWordFormat();
            // Go back to base address
            Browser.Goto(Browser.DocumentAddress);
            // Reopen the document in word
            document = Browser.webDriver.FindElement(By.CssSelector("a[href*='" + filename + ".docx']"));
            Browser.RClick(document);
            Browser.Wait(By.LinkText("Open in Word"));
            elementOpenInWord = Browser.webDriver.FindElement(By.LinkText("Open in Word"));
            Browser.Click(elementOpenInWord);
            // Close Microsoft office dialog and access using expected account
            Utility.CloseMicrosoftOfficeDialog();
            Utility.WaitForDocumentOpenning(filename);
            username = ConfigurationManager.AppSettings["OtherUserName"];
            password = ConfigurationManager.AppSettings["OtherPassword"];
            Utility.OfficeSignIn(username, password);
            Utility.CloseFileInUsePane(filename);
            Utility.OfficeSignIn(username, password);
            Utility.WaitForDocumentOpenning(filename, true);

            wordToOpen = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
            oDocument  = (Word.Document)wordToOpen.ActiveDocument;
            // CheckLockAvailability
            Thread.Sleep(60000);
            // Close and release word process
            Utility.CloseFileNowAvailable(filename);
            oDocument.Close();
            Utility.DeleteDefaultWordFormat();
            Marshal.ReleaseComObject(oDocument);
            Marshal.ReleaseComObject(wordToOpen);
            SharepointClient.UnLockItem(filename + ".docx");
            // Delete the new upload document
            SharepointClient.DeleteFile(filename + ".docx");

            bool result = FormatConvert.SaveSAZ(TestBase.testResultPath, testName, out file);

            Assert.IsTrue(result, "The saz file should be saved successfully.");
            bool parsingResult = MessageParser.ParseMessageUsingWOPIInspector(file);

            Assert.IsTrue(parsingResult, "Case failed, check the details information in error.txt file.");
        }
示例#19
0
        /// <summary>
        /// 调用模板生成word
        /// </summary>
        /// <param name="templateFile">模板文件</param>
        /// <param name="fileName">生成的具有模板样式的新文件</param>
        public void mgmsExportWord(string templateFile, string newfileName)
        {
            #region 生成word应用程序对象
            object obj = System.Reflection.Missing.Value;
            Word.Application app = new Word.Application();

            //模板文件
            string TemplateFile = templateFile;

            //生成的具有模板样式的新文件
            string newFileName = newfileName;

            //模板文件拷贝到新文件
            File.Copy(TemplateFile, newFileName);

            //生成documnet对象
            //Word.Document doc=app.Documents.Add(ref obj,ref obj,ref obj,ref,obj,ref obj);
            Word.Document doc = new Word.Document();
            object Obj_FileName = newFileName;
            object Visible = false;
            object ReadOnly = false;
            object missing = System.Reflection.Missing.Value;

            //打开文件
            doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref Visible,
                ref missing, ref missing, ref missing,
                ref missing);
            #endregion

            try
            {

                //生成word程序对象

                doc.Activate();

                //声明书签数组
                object[] BookMark = new object[70];

                #region 锚杆锚索标签定位

                //赋值书签名
                BookMark[0] ="mgmstitle";
                BookMark[1] = "mgmstimestart";
                BookMark[2] ="mgmstimeend";
                BookMark[3] ="mgmstabletime";
                BookMark[4] ="mgmstableman";
                BookMark[5] ="mgmssensor01";
                BookMark[6] ="mgmssensor02";
                BookMark[7] ="mgmssensor03";
                BookMark[8] ="mgmssensor04";
                BookMark[9] ="mgmssensor05";
                BookMark[10] = "mgmssensor06";
                BookMark[11] = "mgmssensor07";
                BookMark[12] = "mgmssensor08";
                BookMark[13] = "mgmssensor09";
                BookMark[14] = "mgmsmintime01";
                BookMark[15] = "mgmsmintime02";
                BookMark[16] = "mgmsmintime03";
                BookMark[17] = "mgmsmintime04";
                BookMark[18] = "mgmsmintime05";
                BookMark[19] = "mgmsmintime06";
                BookMark[20] = "mgmsmintime07";
                BookMark[21] = "mgmsmintime08";
                BookMark[22] = "mgmsmintime09";
                BookMark[23] = "mgmsmaxtime01";
                BookMark[24] = "mgmsmaxtime02";
                BookMark[25] = "mgmsmaxtime03";
                BookMark[26] = "mgmsmaxtime04";
                BookMark[27] = "mgmsmaxtime05";
                BookMark[28] = "mgmsmaxtime06";
                BookMark[29] = "mgmsmaxtime07";
                BookMark[30] = "mgmsmaxtime08";
                BookMark[31] = "mgmsmaxtime09";
                BookMark[32] = "mgmsaverage01";
                BookMark[33] = "mgmsaverage02";
                BookMark[34] = "mgmsaverage03";
                BookMark[35] = "mgmsaverage04";
                BookMark[36] = "mgmsaverage05";
                BookMark[37] = "mgmsaverage06";
                BookMark[38] = "mgmsaverage07";
                BookMark[39] = "mgmsaverage08";
                BookMark[40] = "mgmsaverage09";
                BookMark[41] = "mgmsminvalue01";
                BookMark[42] = "mgmsminvalue02";
                BookMark[43] = "mgmsminvalue03";
                BookMark[44] = "mgmsminvalue04";
                BookMark[45] = "mgmsminvalue05";
                BookMark[46] = "mgmsminvalue06";
                BookMark[47] = "mgmsminvalue07";
                BookMark[48] = "mgmsminvalue08";
                BookMark[49] = "mgmsminvalue09";
                BookMark[50] = "mgmsmaxvalue01";
                BookMark[51] = "mgmsmaxvalue02";
                BookMark[52] = "mgmsmaxvalue03";
                BookMark[53] = "mgmsmaxvalue04";
                BookMark[54] = "mgmsmaxvalue05";
                BookMark[55] = "mgmsmaxvalue06";
                BookMark[56] = "mgmsmaxvalue07";
                BookMark[57] = "mgmsmaxvalue08";
                BookMark[58] = "mgmsmaxvalue09";
                BookMark[59] = "mgmsalamevent01";
                BookMark[60] = "mgmsalamevent02";
                BookMark[61] = "mgmsalamevent03";
                BookMark[62] = "mgmsalamevent04";
                BookMark[63] = "mgmsalamevent05";
                BookMark[64] = "mgmsalamevent06";
                BookMark[65] = "mgmsalamevent07";
                BookMark[66] = "mgmsalamevent08";
                BookMark[67] = "mgmsalamevent09";
                BookMark[68] = "lbimagemgms";

                #endregion

                //-----------数据煤矿名称读取操作----------
                string strsqltitle = "select 煤矿名称 from 煤矿基本信息表 ";
                DataTable dt = db.Query(strsqltitle);
                DataRow dr = dt.Rows[0];
                string inform = dr["煤矿名称"].ToString();
                //----------------------------------------------------------
                //获取当前系统时间不显示秒
                DateTime currentTime = System.DateTime.Now;
                string strnowtime = currentTime.ToString("f");

                //获取当前用户
                string currentuser = login.REAL_NAME;

                #region 锚杆锚索导出报表
                //---------------------取锚杆锚索时间段-------------------
                string date_begin_hourmgms = (comboBox12.Text == "") ? "0" : comboBox12.Text;
                string date_begin_minmgms = (comboBox10.Text == "") ? "0" : comboBox10.Text;
                string date_over_hourmgms = (comboBox11.Text == "") ? "23" : comboBox11.Text;
                string date_over_minmgms = (comboBox9.Text == "") ? "59" : comboBox9.Text;

                string date_beginmgms = dateTimePicker6.Text.ToString();
                date_beginmgms += " " + date_begin_hourmgms + ":" + date_begin_minmgms;
                date_beginmgms += ":00";
                string date_overmgms = dateTimePicker5.Text.ToString();
                date_overmgms += " " + date_over_hourmgms + ":" + date_over_minmgms;
                date_overmgms += ":00";
                DateTime d_beginmgms = DateTime.Parse(date_beginmgms);
                DateTime d_overmgms = DateTime.Parse(date_overmgms);

                //----------------------------------------------------------------
                //string strmgmsstarttime = dateTimePicker6.Text.ToString() + " " + comboBox12.Text.ToString() + ":" + comboBox10.Text.ToString();
                //string strmgmsendtime = dateTimePicker5.Text.ToString() + " " + comboBox11.Text.ToString() + ":" + comboBox9.Text.ToString();

                //----赋值锚杆锚索数据到公共书签的位置---------------------
                doc.Bookmarks.get_Item(ref BookMark[0]).Range.Text = inform;
                doc.Bookmarks.get_Item(ref BookMark[1]).Range.Text = date_beginmgms;
                doc.Bookmarks.get_Item(ref BookMark[2]).Range.Text = date_overmgms;
                doc.Bookmarks.get_Item(ref BookMark[3]).Range.Text = strnowtime;
                doc.Bookmarks.get_Item(ref BookMark[4]).Range.Text = currentuser;
                //-------------------------------------------------------------

                //---------------取锚杆锚索传感器编号与所选传感器列表相对应----------
                string mgmscgqbh = "锚杆锚索传感器编号='";
                for (int i = 0; i < dataGridView3.Rows.Count; i++)
                {

                    if (i == dataGridView3.Rows.Count - 1)
                        mgmscgqbh += dataGridView3.Rows[i].Cells["传感器编号"].Value.ToString() + "'";
                    else
                        mgmscgqbh += dataGridView3.Rows[i].Cells["传感器编号"].Value.ToString() + "' or 锚杆锚索传感器编号='";

                }
                //------------------------------------------------------------------------------------

                //--------------------锚杆锚索应力max、min、avg值实现----------------
                string sqlmgmsdata = "SELECT  锚杆锚索传感器编号, min([锚杆锚索data]) as mindata ,round(avg([锚杆锚索data]),2) as avgdata,max([锚杆锚索data]) as maxdata FROM 锚杆锚索传感器信息表 WHERE ( [锚杆锚索观测时间] Between  #" + d_beginmgms + "# And #" + d_overmgms + "#) and( " + mgmscgqbh + ") Group by 锚杆锚索传感器编号";

                DataTable mgmsdr = db.Query(sqlmgmsdata);//存放从锚杆锚索传感器信息表中取出的数据

                int row_num=0;
                for (int i = 0; i < dataGridView3.Rows.Count; i++)
                {
                    for (int j = 0; j < mgmsdr.Rows.Count; j++)
                    {
                        if (mgmsdr.Rows[j]["锚杆锚索传感器编号"].ToString() == dataGridView3.Rows[i].Cells["传感器编号"].Value.ToString())
                        {
                            string sql_pstion = "select 传感器安装位置 from 传感器信息表 where 传感器编号 ='" + dataGridView3.Rows[i].Cells["传感器编号"].Value.ToString() + "' ";
                            string pstion = (string)db.QueryScalar(sql_pstion);
                            doc.Bookmarks.get_Item(ref BookMark[row_num + 5]).Range.Text = dataGridView3.Rows[i].Cells["传感器编号"].Value.ToString() + @" \ " + pstion;
                            doc.Bookmarks.get_Item(ref BookMark[row_num + 32]).Range.Text = mgmsdr.Rows[j]["avgdata"].ToString();

                            string sqlmgmstime = "SELECT  锚杆锚索传感器编号,锚杆锚索观测时间 FROM 锚杆锚索传感器信息表 WHERE ( [锚杆锚索观测时间] Between  #" + d_beginmgms + "# And #" + d_overmgms + "#) and 锚杆锚索传感器编号='" + mgmsdr.Rows[j]["锚杆锚索传感器编号"].ToString() + "' and ([锚杆锚索data]=" + mgmsdr.Rows[j]["mindata"].ToString() + ") ";
                            DataTable mgmstimedt = db.Query(sqlmgmstime);//存放最小值观测时间
                            doc.Bookmarks.get_Item(ref BookMark[row_num + 14]).Range.Text = mgmsdr.Rows[j]["mindata"].ToString() + "/" + mgmstimedt.Rows[0]["锚杆锚索观测时间"].ToString();
                            sqlmgmstime = "SELECT  锚杆锚索传感器编号,锚杆锚索观测时间 FROM 锚杆锚索传感器信息表 WHERE ( [锚杆锚索观测时间] Between  #" + d_beginmgms + "# And #" + d_overmgms + "#) and 锚杆锚索传感器编号='" + mgmsdr.Rows[j]["锚杆锚索传感器编号"].ToString() + "' and ([锚杆锚索data]=" + mgmsdr.Rows[j]["maxdata"].ToString() + ") ";
                            DataTable mgmstimedt_max = db.Query(sqlmgmstime);//存放最小值观测时间
                            doc.Bookmarks.get_Item(ref BookMark[row_num + 23]).Range.Text = mgmsdr.Rows[j]["maxdata"].ToString() + "/" + mgmstimedt_max.Rows[0]["锚杆锚索观测时间"].ToString();

                            string mgmssqlalamvalue = "select 传感器编号,最大报警值1,最小报警值1 from 报警值信息表 where 传感器编号='" + mgmsdr.Rows[j]["锚杆锚索传感器编号"].ToString() + "'";
                            DataTable mgmsalamdr = db.Query(mgmssqlalamvalue); //存放从报警表中取的最大值、最小值预制数据
                            double min_alarm = double.NegativeInfinity;
                            double max_alarm = double.PositiveInfinity;
                            if (mgmsalamdr.Rows.Count > 0)
                            {
                                doc.Bookmarks.get_Item(ref BookMark[row_num + 41]).Range.Text = mgmsalamdr.Rows[0]["最小报警值1"].ToString();
                                doc.Bookmarks.get_Item(ref BookMark[row_num + 50]).Range.Text = mgmsalamdr.Rows[0]["最大报警值1"].ToString();
                                if (mgmsalamdr.Rows[0]["最小报警值1"].ToString()!="")
                                    min_alarm = double.Parse(mgmsalamdr.Rows[0]["最小报警值1"].ToString());
                                if (mgmsalamdr.Rows[0]["最大报警值1"].ToString() != "")
                                    max_alarm = double.Parse(mgmsalamdr.Rows[0]["最大报警值1"].ToString());

                            }
                             string sqlalameventmgms = "";
                            if (double.IsPositiveInfinity(max_alarm) && double.IsNegativeInfinity(min_alarm))
                                sqlalameventmgms = "select 锚杆锚索传感器编号,锚杆锚索data,锚杆锚索观测时间 from 锚杆锚索传感器信息表 where 锚杆锚索传感器编号='" + mgmsdr.Rows[j]["锚杆锚索传感器编号"].ToString() + "' and ( [锚杆锚索观测时间] Between  #" + d_beginmgms + "# And #" + d_overmgms + "#) and (1>2)";

                            else if (double.IsPositiveInfinity(max_alarm) && !double.IsNegativeInfinity(min_alarm))
                                sqlalameventmgms = "select 锚杆锚索传感器编号,锚杆锚索data,锚杆锚索观测时间 from 锚杆锚索传感器信息表 where 锚杆锚索传感器编号='" + mgmsdr.Rows[j]["锚杆锚索传感器编号"].ToString() + "' and ( [锚杆锚索观测时间] Between  #" + d_beginmgms + "# And #" + d_overmgms + "#) and (锚杆锚索data <" + min_alarm + ")";
                           //"锚杆锚索传感器编号='" + listBox4.Items[p].ToString()+"'"
                            else if (!double.IsPositiveInfinity(max_alarm) && double.IsNegativeInfinity(min_alarm))
                                sqlalameventmgms = "select 锚杆锚索传感器编号,锚杆锚索data,锚杆锚索观测时间 from 锚杆锚索传感器信息表 where 锚杆锚索传感器编号='" + mgmsdr.Rows[j]["锚杆锚索传感器编号"].ToString() + "' and ( [锚杆锚索观测时间] Between  #" + d_beginmgms + "# And #" + d_overmgms + "#) and (锚杆锚索data >" + max_alarm + ")";
                           else
                                sqlalameventmgms = "select 锚杆锚索传感器编号,锚杆锚索data,锚杆锚索观测时间 from 锚杆锚索传感器信息表 where 锚杆锚索传感器编号='" + mgmsdr.Rows[j]["锚杆锚索传感器编号"].ToString() + "' and ( [锚杆锚索观测时间] Between  #" + d_beginmgms + "# And #" + d_overmgms + "#) and (锚杆锚索data >" + max_alarm + " or 锚杆锚索data <" + min_alarm + ")";

                            DataTable mgmsalramnodt = db.Query(sqlalameventmgms);//存锚杆锚索传感器编号符合条
                            {
                                if (mgmsalramnodt.Rows.Count == 1)
                                    doc.Bookmarks.get_Item(ref BookMark[row_num + 59]).Range.Text = mgmsalramnodt.Rows[0]["锚杆锚索data"].ToString() + "/" + mgmsalramnodt.Rows[0]["锚杆锚索观测时间"].ToString() + " ";
                                else if (mgmsalramnodt.Rows.Count > 1)
                                    doc.Bookmarks.get_Item(ref BookMark[row_num + 59]).Range.Text = "共发生" + mgmsalramnodt.Rows.Count.ToString() + "个报警事件";
                                else
                                    doc.Bookmarks.get_Item(ref BookMark[row_num + 59]).Range.Text = "无";

                            }
                            row_num++;
                            break;
                        }
                    }

                }
                //--------------------------------------------------------------------

                //------------------读取最小值检测时间实现---------------------------------------
                //MessageBox.Show(mgmsmindata.Length.ToString());
                //for (int i = 0; i < min_num; i++)
                //{
                //    //MessageBox.Show(multipleQuery.mgmsmindata[i]);
                //    string sqlmgmstime = "SELECT  锚杆锚索传感器编号,锚杆锚索观测时间 FROM 锚杆锚索传感器信息表 WHERE 锚杆锚索传感器编号='" + mgmsmindata[i,0] + "' and ([锚杆锚索data]=" + mgmsmindata[i,1] + ") ";
                //    DataTable mgmstimedt = db.Query(sqlmgmstime);//存放最小值观测时间
                //    doc.Bookmarks.get_Item(ref BookMark[i + 14]).Range.Text = mgmsmindata[i,1] + "/" + mgmstimedt.Rows[0]["锚杆锚索观测时间"].ToString();
                //    sqlmgmstime = "SELECT  锚杆锚索传感器编号,锚杆锚索观测时间 FROM 锚杆锚索传感器信息表 WHERE 锚杆锚索传感器编号='" + mgmsmindata[i, 0] + "' and ([锚杆锚索data]=" + mgmsmindata[i, 2] + ") ";
                //    DataTable mgmstimedt_max = db.Query(sqlmgmstime);//存放最小值观测时间
                //    doc.Bookmarks.get_Item(ref BookMark[i + 23]).Range.Text = mgmsmindata[i, 2] + "/" + mgmstimedt_max.Rows[0]["锚杆锚索观测时间"].ToString();

                //}
                //---------------------------------------------------------------------------------

                ////--------------------读取最大值检测时间实现------------------------------------------
                //for (int i = 0; i < listBox4.Items.Count; i++)
                //{
                //    string sqlmgmstime = "SELECT  锚杆锚索传感器编号,锚杆锚索观测时间 FROM 锚杆锚索传感器信息表 WHERE 锚杆锚索传感器编号='" + listBox4.Items[i].ToString() + "' and( " + mgmscgqbh + ")";
                //    DataTable mgmstimedt = db.Query(sqlmgmstime);//存放最大值观测时间
                //    doc.Bookmarks.get_Item(ref BookMark[i + 23]).Range.Text = mgmsmaxdata[i] + "/" + mgmstimedt.Rows[0]["锚杆锚索观测时间"].ToString();

                //}
                ////------------------------------------------------------------------------------------

                ////-------------------------------最大最小报警值实现----------------------------------------

                //string mgmsalamcgqbh = "传感器编号='";
                //for (int i = 0; i < listBox4.Items.Count; i++)
                //{
                //    if (i == listBox4.Items.Count - 1)
                //        mgmsalamcgqbh += listBox4.Items[i].ToString() + "'";
                //    else
                //        mgmsalamcgqbh += listBox4.Items[i].ToString() + "' or 传感器编号='";

                //}
                //string mgmssqlalamvalue = "select 传感器编号,最大报警值1,最小报警值1 from 报警值信息表 where(" + mgmsalamcgqbh + ")";
                //DataTable mgmsalamdr = db.Query(mgmssqlalamvalue); //存放从报警表中取的最大值、最小值预制数据

                ////-----------------新建一个数据表名字为alarmmgms存储数据为报警最大值与最小值及锚杆锚索传感器编号---------------
                //DataTable dt_alarmmgms = new DataTable("alarmmgms");

                //dt_alarmmgms.Columns.Add("传感器编号", System.Type.GetType("System.String"));
                ////dt_alarm.Columns.Add("通道", System.Type.GetType("System.String"));

                //dt_alarmmgms.Columns.Add("最大报警值", System.Type.GetType("System.Double"));
                //dt_alarmmgms.Columns.Add("最小报警值", System.Type.GetType("System.Double"));
                ////------------------------------------------------------------------------------------------------------

                //for (int k = 0; k < listBox4.Items.Count; k++)
                //{
                //    DataRow dr_alarmmgms = dt_alarmmgms.NewRow();//读报警值表存放最大报警值、最小、及其编号
                //    dr_alarmmgms["传感器编号"] = listBox4.Items[k].ToString();
                //    dr_alarmmgms["最大报警值"] = double.PositiveInfinity;
                //    dr_alarmmgms["最小报警值"] = double.NegativeInfinity;
                //    for (int m = 0; m < mgmsalamdr.Rows.Count; m++)
                //    {
                //        if (mgmsalamdr.Rows[m]["传感器编号"].ToString() == listBox4.Items[k].ToString())
                //        {
                //            doc.Bookmarks.get_Item(ref BookMark[k + 41]).Range.Text = mgmsalamdr.Rows[m]["最小报警值1"].ToString();
                //            doc.Bookmarks.get_Item(ref BookMark[k + 50]).Range.Text = mgmsalamdr.Rows[m]["最大报警值1"].ToString();
                //            //mgmsalameventmax = (float)mgmsalamdr.Rows[m]["最大报警值1"];
                //            ////MessageBox.Show(mgmsalameventmax.ToString());
                //            //mgmsalameventmin = (float)mgmsalamdr.Rows[m]["最小报警值1"];
                //            //sensor[m] = mgmsalamdr.Rows[m]["传感器编号"].ToString();
                //            //---------------------最大、最小存值----------------
                //            dr_alarmmgms["最大报警值"] = (float)mgmsalamdr.Rows[m]["最大报警值1"];
                //            dr_alarmmgms["最小报警值"] = (float)mgmsalamdr.Rows[m]["最小报警值1"];
                //            //----------------------------------------------
                //        }

                //    }
                //    dt_alarmmgms.Rows.Add(dr_alarmmgms);
                //}

                ////--------------------------报警事件的个数-----------------------------

                //for (int n = 0; n < listBox4.Items.Count; n++)
                //{

                //    if (dt_alarmmgms.Rows.Count > 0)
                //    {
                //        //string sensorevent = "锚杆锚索传感器编号='" + sensor[n] + "'";
                //        //MessageBox.Show(sensorevent);
                //        //--------------------判断是否设置报警值的上下限--------------------------
                //        string mgmsselect_str = "";

                //        if (double.IsPositiveInfinity((double)dt_alarmmgms.Rows[n]["最大报警值"]) && double.IsNegativeInfinity((double)dt_alarmmgms.Rows[n]["最小报警值"]))
                //            mgmsselect_str = "1>1";
                //        else if ((double)dt_alarmmgms.Rows[n]["最大报警值"] == -1 && (double)dt_alarmmgms.Rows[n]["最小报警值"] != -1)
                //            mgmsselect_str = "锚杆锚索data<" + (double)dt_alarmmgms.Rows[n]["最小报警值"];
                //        //"锚杆锚索传感器编号='" + listBox4.Items[p].ToString()+"'"
                //        else if ((double)dt_alarmmgms.Rows[n]["最大报警值"] != -1 && (double)dt_alarmmgms.Rows[n]["最小报警值"] == -1)
                //        {
                //            mgmsselect_str = "锚杆锚索data>" + (double)dt_alarmmgms.Rows[n]["最大报警值"];
                //            //MessageBox.Show(mgmsselect_str);
                //        }
                //        else
                //            mgmsselect_str = "锚杆锚索data>" + (double)dt_alarmmgms.Rows[n]["最大报警值"] + " or " + "锚杆锚索data<" + (double)dt_alarmmgms.Rows[n]["最小报警值"];
                //        //MessageBox.Show(dt_alarm.Rows[n]["传感器编号"].ToString());
                //        //--------------------------------------------------------------------------------------------

                //        //--------------------------------取已设报警值的锚杆锚索传感器编号-----------------
                //        string mgmsalamsensorno = "锚杆锚索传感器编号='" + listBox4.Items[n].ToString() + "'";
                //        //for (int i = 0; i <= dt_alarmmgms.Rows.Count; i++)
                //        //{
                //        //    if (i == dt_alarmmgms.Rows.Count - 1)
                //        //    {
                //        //        mgmsalamsensorno += dt_alarmmgms.Rows[i]["传感器编号"].ToString() + "'";
                //        //        //MessageBox.Show(alamsensono);
                //        //    }
                //        //    //else
                //        //    // alamsensono += dt_alarm.Rows[i]["传感器编号"].ToString() + "' or 锚杆锚索传感器编号='";

                //        //}
                //        //---------------------------------------------------------------------

                //        string sqlalameventmgms = "select 锚杆锚索传感器编号,锚杆锚索data,锚杆锚索观测时间 from 锚杆锚索传感器信息表 where(" + mgmsalamsensorno + ") and ( [锚杆锚索观测时间] Between  #" + d_beginmgms + "# And #" + d_overmgms + "#) ";
                //        DataTable mgmsalramnodt = db.Query(sqlalameventmgms);//存锚杆锚索传感器编号符合条件的报警值
                //        if (mgmsselect_str != "")
                //        {
                //            //if(double.IsPositiveInfinity(num);)
                //            DataRow[] alarmmgms = mgmsalramnodt.Select(mgmsselect_str); //存所有报警值
                //            // DataRow[] alammin = alamnodt.Select("锚杆锚索data<" + mgmsalameventmin);

                //            if (alarmmgms.Length == 1)
                //                doc.Bookmarks.get_Item(ref BookMark[n + 59]).Range.Text = alarmmgms[0]["锚杆锚索data"].ToString() + "/" + alarmmgms[0]["锚杆锚索观测时间"].ToString() + " ";
                //            else if (alarmmgms.Length > 1)
                //                doc.Bookmarks.get_Item(ref BookMark[n + 59]).Range.Text = "共发生" + alarmmgms.Length.ToString() + "个报警事件";
                //            else
                //                doc.Bookmarks.get_Item(ref BookMark[n + 59]).Range.Text = "无";
                //        }
                //    }

                //}

                //-----------------------添加图片-----------------------------------------
                doc.Bookmarks.get_Item(ref BookMark[68]).Select();
                app.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                app.Selection.InlineShapes.AddPicture(@"D:\c.bmp", ref missing, ref missing, ref missing);

                ////判断指定的图片是否存在
                //if (File.Exists(@"..\..\sources\images\12.png"))
                //{
                //    File.Delete(@"..\..\sources\images\12.png");
                //}

                //-------------------------------------------------------------------------------------

                #endregion

                MessageBox.Show("生成“" + newFileName + "”成功!");
            }

            catch (Exception Ex)
            {
                MessageBox.Show(Ex.ToString());
                return;
            }

            finally
            {
                //输出完毕后关闭doc对象
                object IsSave = true;
                doc.Close(ref IsSave, ref missing, ref missing);
            }
        }
        public void CoautherWithConflict()
        {
            // Upload a document
            SharepointClient.UploadFile(Word);
            // Refresh web address
            Browser.Goto(Browser.DocumentAddress);
            // Find document on site
            IWebElement document = Browser.webDriver.FindElement(By.CssSelector("a[href*='" + filename + ".docx']"));

            // Open document by office word
            Browser.RClick(document);
            Browser.Wait(By.LinkText("Open in Word"));
            var elementOpenInWord = Browser.webDriver.FindElement(By.LinkText("Open in Word"));

            Browser.Click(elementOpenInWord);
            // Close Microsoft office dialog and access using expected account
            Utility.CloseMicrosoftOfficeDialog();
            Utility.WaitForDocumentOpenning(filename, false, true);
            string username = ConfigurationManager.AppSettings["UserName"];
            string password = ConfigurationManager.AppSettings["Password"];

            Utility.OfficeSignIn(username, password);
            bool isWindowsSecurityPop = Utility.WaitForDocumentOpenning(filename, false, true);

            if (isWindowsSecurityPop)
            {
                Utility.OfficeSignIn(username, password);
            }
            // Wait for document is opened
            Utility.WaitForDocumentOpenning(filename);
            // Get the opened word process, and edit it
            Word.Application wordToOpen = (Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
            Thread.Sleep(1000);
            Word.Document oDocument = (Word.Document)wordToOpen.ActiveDocument;
            oDocument.Content.InsertBefore("HelloWordConfilict");
            // Click the document in root site
            Browser.Click(document);
            Browser.Wait(By.Id("WebApplicationFrame"));
            Browser.webDriver.SwitchTo().Frame("WebApplicationFrame");
            Thread.Sleep(20000);
            // Find and click "Edit Document" tab
            Browser.Wait(By.Id("flyoutWordViewerEdit-Medium20"));
            var editWord = Browser.FindElement(By.XPath("//a[@id='flyoutWordViewerEdit-Medium20']"), false);

            editWord.Click();
            // Find and click "Edit in Browser" tab
            var editInbrowser = Browser.webDriver.FindElement(By.XPath("//a[@id ='btnFlyoutEditOnWeb-Menu32']"));

            editInbrowser.Click();
            // Wait for document is opened
            Thread.Sleep(2000);
            Browser.Wait(By.XPath("//span[@id='BreadcrumbSaveStatus'][text()='Saved']"));
            // Edit it in online
            SendKeys.SendWait("HelloOfficeOnlineConflict");
            // Wait for online edit saved
            Thread.Sleep(2000);
            Browser.Wait(By.XPath("//span[@id='BreadcrumbSaveStatus'][text()='Saved']"));
            //saved = Browser.FindElement(By.XPath("//span[@id='BreadcrumbSaveStatus']"), false);
            Thread.Sleep(60000);
            // Refresh web address
            Browser.Goto(Browser.DocumentAddress);
            Thread.Sleep(50000);
            // Save it in office word and close and release word process
            Utility.WordEditSave(filename);
            Thread.Sleep(10000);
            Utility.CloseMicrosoftWordDialog(filename, "OK");
            Utility.WordConflictMerge(filename);
            oDocument.Close();
            Utility.DeleteDefaultWordFormat();
            Marshal.ReleaseComObject(oDocument);
            Marshal.ReleaseComObject(wordToOpen);
            // Delete the new upload document
            SharepointClient.DeleteFile(filename + ".docx");

            bool result = FormatConvert.SaveSAZ(TestBase.testResultPath, testName, out file);

            Assert.IsTrue(result, "The saz file should be saved successfully.");
            bool parsingResult = MessageParser.ParseMessageUsingWOPIInspector(file);

            Assert.IsTrue(parsingResult, "Case failed, check the details information in error.txt file.");
        }
        /// <summary>
        ///     The convert to docx.
        /// </summary>
        /// <param name="fullPath">The full path.</param>
        /// <param name="targetLanguage">The target language.</param>
        /// <returns>
        ///     The System.String.
        /// </returns>
        private static string ConvertToDocx(string fullPath, string targetLanguage)
        {
            LoggingManager.LogMessage("Converting the document " + fullPath + " from doc or pdf to docx.");
            object nullvalue = Type.Missing;

            //Microsoft.Office.Interop.Word.Application wordApp = (Microsoft.Office.Interop.Word.Application)
            //Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("000209FF-0000-0000-C000-000000000046")));
            Microsoft.Office.Interop.Word.Application wordApp =
                new Microsoft.Office.Interop.Word.Application
            {
                Visible = false
            };
            object file2 = GetOutputDocumentFullName(fullPath, targetLanguage);

            try
            {
                wordApp.Visible = false;
                object filee = fullPath;
                Microsoft.Office.Interop.Word.Document wordDoc = wordApp.Documents.Open(
                    ref filee,
                    nullvalue,
                    Missing.Value,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue,
                    nullvalue);

                if (fullPath.ToLowerInvariant().EndsWith(".doc"))
                {
                    wordDoc.Convert();
                }

                wordDoc.SaveAs(
                    ref file2,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue,
                    ref nullvalue);
                wordDoc.Close(ref nullvalue, nullvalue, nullvalue);
            }
            finally
            {
                // wordApp.Documents.Close(ref nullvalue, ref nullvalue, ref nullvalue);
                wordApp.Quit(ref nullvalue, ref nullvalue, ref nullvalue);
            }

            LoggingManager.LogMessage("Converted the document " + fullPath + " from doc or pdf to docx.");
            return(file2.ToString());
        }
示例#22
0
        private void createDocument()
        {
            try
            {
                //Create an instance for word app
                Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application();

                //Set animation status for word application
                winword.ShowAnimation = false;

                //Set status for word application is to be visible or not.
                winword.Visible = false;

                //Create a missing variable for missing value
                object missing = System.Reflection.Missing.Value;

                //Create a new document
                Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing);

                //Add header into the document
                foreach (Microsoft.Office.Interop.Word.Section section in document.Sections)
                {
                    //Get the header range and add the header details.
                    Microsoft.Office.Interop.Word.Range headerRange = section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
                    headerRange.Fields.Add(headerRange, Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage);
                    headerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
                    headerRange.Font.ColorIndex           = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue;
                    headerRange.Font.Size = 10;
                    headerRange.Text      = "Header text goes here";
                }

                //Add the footers into the document
                foreach (Microsoft.Office.Interop.Word.Section wordSection in document.Sections)
                {
                    //Get the footer range and add the footer details.
                    Microsoft.Office.Interop.Word.Range footerRange = wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
                    footerRange.Font.ColorIndex           = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed;
                    footerRange.Font.Size                 = 10;
                    footerRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
                    footerRange.Text = "Footer text goes here";
                }

                //adding text to document
                document.Content.SetRange(0, 0);
                document.Content.Text = "This is test document " + Environment.NewLine;

                //Add paragraph with Heading 1 style
                Microsoft.Office.Interop.Word.Paragraph para1 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading1 = "Heading 1";
                para1.Range.set_Style(ref styleHeading1);
                para1.Range.Text = "Para 1 text";
                para1.Range.InsertParagraphAfter();

                //Add paragraph with Heading 2 style
                Microsoft.Office.Interop.Word.Paragraph para2 = document.Content.Paragraphs.Add(ref missing);
                object styleHeading2 = "Heading 2";
                para2.Range.set_Style(ref styleHeading2);
                para2.Range.Text = "Para 2 text";
                para2.Range.InsertParagraphAfter();

                //Create a 5X5 table and insert some dummy record
                Table firstTable = document.Tables.Add(para1.Range, 5, 5, ref missing, ref missing);

                firstTable.Borders.Enable = 1;
                foreach (Row row in firstTable.Rows)
                {
                    foreach (Cell cell in row.Cells)
                    {
                        //Header row
                        if (cell.RowIndex == 1)
                        {
                            cell.Range.Text      = "Column " + cell.ColumnIndex.ToString();
                            cell.Range.Font.Bold = 1;
                            //other format properties goes here
                            cell.Range.Font.Name = "verdana";
                            cell.Range.Font.Size = 10;
                            //cell.Range.Font.ColorIndex = WdColorIndex.wdGray25;
                            cell.Shading.BackgroundPatternColor = WdColor.wdColorGray25;
                            //Center alignment for the Header cells
                            cell.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                            cell.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
                        }
                        //Data row
                        else
                        {
                            cell.Range.Text = (cell.RowIndex - 2 + cell.ColumnIndex).ToString();
                        }
                    }
                }

                //Save the document  "C:\Users\DOM\Documents\abc.txt"
                object filename = @"C:\Users\DOM\Documents\abc.docx";
                document.SaveAs2(ref filename);
                document.Close(ref missing, ref missing, ref missing);
                document = null;
                winword.Quit(ref missing, ref missing, ref missing);
                winword = null;
                MessageBox.Show("Document created successfully !");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#23
0
        public static bool CreateWordsDocumentToOne(object docPath, string savaAs, string docName,DataRowView[] candidats,string presedinte,string membru1, string membru2)
        {
            int candiLength = candidats.Length;
               Console.WriteLine("LENGTH" + candiLength);

               object missing = Missing.Value;
             //      Word.Document[] adocs = new Word.Document[candidats.Length];

               string output = savaAs + docName + "-" + "candidats.docx";

               Application createEmptyDocApp = null;
               Word.Document createEmptyDoc = null;

               Word._Application wordAppForOutput = null;
               Word._Document wordDocument = null;

               Word.Document aDoc = null;
               Word.Application wordApp = null;

               try
               {
               if (File.Exists(output))
                   File.Delete(output);

               if (!File.Exists(output))
               {
                   createEmptyDocApp = new Application();
                   createEmptyDoc = createEmptyDocApp.Documents.Add();

                   createEmptyDocApp.ActiveDocument.SaveAs(output, ref missing, ref missing,
                                                                          ref missing, ref missing, ref missing, ref missing,
                                                                          ref missing, ref missing, ref missing, ref missing);
                   createEmptyDoc.Close();
                   if (createEmptyDocApp != null)
                   {
                       createEmptyDocApp.Quit();
                       Marshal.FinalReleaseComObject(createEmptyDocApp);
                   }

                   createEmptyDoc = null;
                   createEmptyDocApp = null;

               }
               else
               {
                   return false;
               }

               object pageBreak = Word.WdBreakType.wdPageBreak;
               wordAppForOutput = new Word.Application();

               wordAppForOutput.Visible = false;

               wordDocument = wordAppForOutput.Documents.Open(
                                             output
                                             , false, false, ref missing,
                                                        ref missing, ref missing, ref missing, ref missing,
                                                        ref missing, ref missing, ref missing, true,
                                                        ref missing, ref missing, ref missing, ref missing);

               wordDocument.Activate();

               for (int i = 0; i < candiLength; ++i)
               {

                   aDoc = new Word.Document();
                   wordApp = new Word.Application();
                   DataRow candidat = candidats[i].Row;
                   List<int> processesbeforegen = getRunningProcesses();
                   // string savePath =(string) savaAs + docName + " " + candidat["Nume"] + "_" + candidat["Prenume"] ;
                   string savePath = savaAs + "tempDoc";

                   if (File.Exists((string)docPath))
                   {
                       Console.WriteLine("Fajlnal vagyok");

                       object readOnly = false; //default
                       object isVisible = false;

                       wordApp.Visible = false;

                       aDoc = wordApp.Documents.Open(ref docPath, ref missing, ref readOnly,
                                                   ref missing, ref missing, ref missing,
                                                   ref missing, ref missing, ref missing,
                                                   ref missing, ref missing, ref missing,
                                                   ref missing, ref missing, ref missing, ref missing);

                       aDoc.Activate();

                       Console.WriteLine("megnyitva");

                       //Find and replace:
                       FindAndReplace(wordApp, "{NrMatricol}", candidat["NrMatricol"]);
                       FindAndReplace(wordApp, "{Nume}", candidat["Nume"]);
                       FindAndReplace(wordApp, "{Prenume}", candidat["Prenume"]);
                       FindAndReplace(wordApp, "{Tata}", candidat["Tata"]);
                       FindAndReplace(wordApp, "{Mama}", candidat["Mama"]);
                       FindAndReplace(wordApp, "{CNP>", candidat["CNP"]);
                       FindAndReplace(wordApp, "{DataNasterii}", candidat["DataNasterii"]);
                       FindAndReplace(wordApp, "{LoculNasterii}", candidat["LoculNasterii"]);
                       FindAndReplace(wordApp, "{Strada}", candidat["Strada"]);
                       FindAndReplace(wordApp, "{Nr}", candidat["Nr"]);
                       FindAndReplace(wordApp, "{Bloc}", candidat["Bloc"]);
                       FindAndReplace(wordApp, "{Scara}", candidat["Scara"]);
                       FindAndReplace(wordApp, "{Ap}", candidat["Ap"]);
                       FindAndReplace(wordApp, "{Localitate}", candidat["Localitate"]);
                       FindAndReplace(wordApp, "{Judet}", candidat["Judet"]);
                       FindAndReplace(wordApp, "{Cp}", candidat["Cp"]);
                       FindAndReplace(wordApp, "{Telefon}", candidat["Telefon"]);
                       FindAndReplace(wordApp, "{Studii}", candidat["Studii"]);
                       FindAndReplace(wordApp, "{Profesia}", candidat["Profesia"]);
                       FindAndReplace(wordApp, "{LocMunca}", candidat["LocMunca"]);
                       FindAndReplace(wordApp, "{Presedinte}", presedinte);
                       FindAndReplace(wordApp, "{Membru1}", membru1);
                       FindAndReplace(wordApp, "{Membru2}", membru2);

                       Console.WriteLine("cserelgetes");

                       object saveFullPath = savePath;

                       aDoc.SaveAs2(ref saveFullPath, ref missing, ref missing, ref missing,
                       ref missing, ref missing, ref missing,
                       ref missing, ref missing, ref missing,
                       ref missing, ref missing, ref missing,
                       ref missing, ref missing, ref missing);

                       //Close Document:

                       aDoc.Close(ref missing, ref missing, ref missing);
                       wordApp.Quit(false);

                       Marshal.FinalReleaseComObject(wordApp);
                       string PathToMerge = savePath + ".docx";
                       if (File.Exists(PathToMerge))
                       {
                           wordAppForOutput.Selection.InsertFile(PathToMerge, ref missing, true, ref missing, ref missing);
                           wordAppForOutput.Selection.InsertBreak(ref pageBreak);
                           File.Delete(PathToMerge);
                       }
                       else
                       {
                           Console.WriteLine("dosent exist the file");
                       }

                       aDoc = null;
                       wordApp = null;
                       List<int> processesaftergen = getRunningProcesses();
                       Console.WriteLine("COUNT > " + processesbeforegen.Count + "  " + processesaftergen.Count);
                       killProcesses(processesbeforegen, processesaftergen);
                   }
                   else
                   {
                       System.Windows.MessageBox.Show("file dose not exist.");
                       return false;
                   }
               }

               // Clean up!
               wordDocument.SaveAs(output, ref missing, ref missing,
                                            ref missing, ref missing, ref missing,
                                            ref missing, ref missing, ref missing, ref missing, ref missing);
               wordDocument.Close(ref missing, ref missing, ref missing);
               wordAppForOutput.Quit(ref missing, ref missing, ref missing);
               Marshal.FinalReleaseComObject(wordAppForOutput);
               wordDocument = null;
               wordAppForOutput = null;
               }
               catch (Exception ex)
               {
               System.Windows.MessageBox.Show("Error occured at Report!");
               return false;
               }
               finally
               {
               if (createEmptyDoc != null) createEmptyDoc.Close(ref missing, ref missing, ref missing);
               if (createEmptyDocApp != null)
               {
                   createEmptyDocApp.Quit(ref missing, ref missing, ref missing);
                   Marshal.FinalReleaseComObject(createEmptyDocApp);
               }

               if (wordDocument != null) wordDocument.Close(ref missing, ref missing, ref missing);
               if (wordAppForOutput != null)
               {
                   wordAppForOutput.Quit(ref missing, ref missing, ref missing);
                   Marshal.FinalReleaseComObject(wordAppForOutput);
               }

               if (aDoc != null) aDoc.Close(ref missing, ref missing, ref missing);
               if (wordApp != null)
               {
                   wordApp.Quit(ref missing, ref missing, ref missing);
                   Marshal.FinalReleaseComObject(wordApp);
               }

               }

               return true;
        }
示例#24
0
        public void createWord(string saved_path, bool newSmry)
        {
            word_app = createWordApp();
            this.insertBookmark(saved_doc_list);
            object strFileName = saved_path;
            //MessageBox.Show(strFileName.ToString());
            if (System.IO.File.Exists((string)strFileName))
                System.IO.File.Delete((string)strFileName);
            Object Nothing = System.Reflection.Missing.Value;

            word_wrt = word_app.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);

            object oStyleName = Word.WdBuiltinStyle.wdStyleBodyText;  //"Heading 1";
            word_wrt.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
            word_wrt.Paragraphs.Last.Range.set_Style(ref oStyleName);
            string strContent = "Schlüsselwörter \r";
            word_wrt.Paragraphs.Last.Range.Font.Size = 14;
            word_wrt.Paragraphs.Last.Range.Font.Bold = 1;
            word_wrt.Paragraphs.Last.Range.Text = strContent;

            this.writeSammary();

            //将WordDoc文档对象的内容保存为DOC文档
            word_wrt.SaveAs(ref strFileName, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
            //关闭WordDoc文档对象
            word_wrt.Close(ref Nothing, ref Nothing, ref Nothing);

            //Test code ##
            this.buildTOC(saved_path, newSmry);
            //Test code ##

            try
            {
                word_show.Quit(ref Nothing, ref Nothing, ref Nothing);
                word_app.Quit(ref Nothing, ref Nothing, ref Nothing);
            }
            catch(Exception)
            {
            }

            word_app = null;
            word_show = null;
        }
        static void Main(string[] args)
        {
            string finalHTML;
            List<string> listString = new List<string>();
            object True = true;
            Word.Application app = new Word.Application();
            Word.Document doc = new Word.Document();
            string fileName = @"D:\Programming\C#\Word To Markup Converter\hello world.docx";
            doc = app.Documents.Open(fileName, Type.Missing, True);

            //foreach (Word.Paragraph para in doc.Paragraphs)
            //{
            //    para.Range.Copy();
            //    stripClasses(Clipboard.GetText(TextDataFormat.Html));
            //}
            Word.ListParagraphs listpara = doc.ListParagraphs;
            IEnumerator ienum = doc.ListParagraphs.GetEnumerator();
            List<Tuple<string, Word.WdListType, int>> items = new List<Tuple<string, Word.WdListType, int>>();

            while (ienum.MoveNext())
            {
                Word.Range r = ((Word.Paragraph)ienum.Current).Range;
                items.Add(new  Tuple<string, Word.WdListType, int>(r.Text, r.ListFormat.ListType, r.ListFormat.ListLevelNumber));
            }

            items.Reverse();
            if (items.Count > 0)
            {
                listString = createList(items);
            }
            doc.SelectAllEditableRanges();
            doc.Range().Copy();

            string returnHTMLText = null;

            if (Clipboard.ContainsText(TextDataFormat.Html))
            {
                Console.WriteLine("html");
                returnHTMLText = Clipboard.GetText(TextDataFormat.Html);
                //Console.WriteLine(returnHTMLText);
                stripClasses(returnHTMLText, listString);

            }
            else
            {
                Console.WriteLine("no html");
                //Console.WriteLine(doc.);
                //returnHTMLText = Clipboard.GetText(TextDataFormat.Html);
            }

            doc.Close();
            app.Quit();
            Console.WriteLine("closed");
            while (true) ;
        }
示例#26
0
        private void Translate(string fileName)
        {
            Application winword  = null;
            Document    document = null;

            try
            {
                winword = new Application
                {
                    ShowAnimation = false,
                    Visible       = false
                };

                document = winword.Documents.Open(fileName);

                var translations = GetTranslations();
                if (translations.Count > 0)
                {
                    foreach (var entry in translations)
                    {
                        SearchReplace(winword, (string)entry.Key, (string)entry.Value);
                    }
                    //foreach (Range sentence in document.Sentences)
                    //{
                    //    string text = sentence.Text.TrimEnd('\r', '\a', '\f');
                    //    if (!string.IsNullOrEmpty(text))
                    //    {
                    //        string translation = (string)translations[text];
                    //        if (translation != null)
                    //        {
                    //            sentence.Text = sentence.Text.Replace(text, translation);
                    //        }
                    //    }
                    //}

                    //foreach (Table table in document.Tables)
                    //{
                    //    table.
                    //    foreach (Row row in table.Rows)
                    //    {
                    //        foreach (Cell cell in row.Cells)
                    //        {
                    //            string text = cell.Range.Text.TrimEnd('\r', '\a', '\f');
                    //            if (!string.IsNullOrEmpty(text))
                    //            {
                    //                string translation = (string)translations[text];
                    //                if (translation != null)
                    //                {
                    //                    cell.Range.Text = cell.Range.Text.Replace(text, translation);
                    //                }
                    //            }
                    //        }
                    //    }
                    //}
                }

                string directory = Path.GetDirectoryName(fileName);
                string filename  = Path.GetFileNameWithoutExtension(fileName);
                string extension = Path.GetExtension(filename);

                document.SaveAs(Path.Combine(directory, $"{filename}_vertaald{extension}"));

                AddLog($"Document {fileName} vertaald.");
            }
            catch (Exception e)
            {
                AddLog(e);
            }
            finally
            {
                document?.Close();

                winword?.Quit();
            }
        }
示例#27
0
        protected void dumpText()
        {
            DocumentUpload.SaveAs(Server.MapPath(DocumentUpload.FileName));
            object documentContainer = Server.MapPath(DocumentUpload.FileName);

            Microsoft.Office.Interop.Word.Application wordDocInstance = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document wordDocFile = new Microsoft.Office.Interop.Word.Document();

            object readOnly = false;
            object isVisible = true;
            object missing = System.Reflection.Missing.Value;

            wordDocFile = wordDocInstance.Documents.Open(ref documentContainer, ref missing, ref readOnly, ref missing,
                            ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible);
            docOutput.MaxLength = wordDocFile.Content.Text.Length;

            string fullDocText = wordDocFile.Content.Text;

            docOutput.Text = fullDocText;

            SyllabusParser parser = new SyllabusParser(fullDocText);

            docOutput.Text = " ";
            docOutput.Text = parser.getCurrentText();

            fullDepartmentInput.Text = parser.SyllabusDepartment;
            CourseTitleInput.Text = parser.SyllabusCourseName;
            DeptAbbrInput.Text = parser.SyllabusDepartmentAbbreviation;
            CourseNumberInput.Text = parser.SyllabusCourseNumber;
            CourseLectureHoursInput.Text = parser.LectureHours.ToString();
            CourseLabHoursInput.Text = parser.LabHours.ToString();
            CourseCreditHoursInput.Text = parser.CreditHours.ToString();
            InstructorFirstInput.Text = parser.CourseInstructorFName;
            InstructorLastInput.Text = parser.CourseInstructorLName;
            CourseCoordinatorFirstInput.Text = parser.CourseCoordinatorFName;
            CourseCoordinatorLastInput.Text = parser.CourseCoordinatorLName;
            DescriptionInput.Text = parser.DescriptionText;

            lname_list = parser.getAuthorLNameList();
            fname_list = parser.getAuthorFNameList();
            int count = fname_list.Count();

            if (count == 2)
            {
                authorFname1 = fname_list[0];
                authorFname2 = fname_list[1];
                authorLname1 = lname_list[0];
                authorLname2 = lname_list[1];
            }
            else
            {
                authorFname1 = fname_list[0];
                authorLname1 = lname_list[0];
            }

            for(int cur_index = 0; cur_index < count; cur_index++)
            {
                TableCell fname = new TableCell();
                fname.Text = fname_list[cur_index];
                TableCell lname = new TableCell();
                lname.Text = lname_list[cur_index];
                TableRow insert_row = new TableRow();
                insert_row.Cells.Add(fname);
                insert_row.Cells.Add(lname);
                AuthorTable.Rows.Add(insert_row);
            }

            TextbookTitleInput.Text = parser.TextbookTitle;
            PublisherInput.Text = parser.Publisher;
            PublishDateInput.Text = parser.PublishDate;
            ISBNInput.Text = parser.ISBNNumber;
            TableCell type = new TableCell();
            type.Text = parser.ReqType;
            TableCell reqcomment = new TableCell();
            reqcomment.Text = parser.RequisiteCourseComment;
            TableRow insert_req_row = new TableRow();
            insert_req_row.Cells.Add(type);
            insert_req_row.Cells.Add(reqcomment);
            PreReqsTable.Rows.Add(insert_req_row);

            wordDocFile.Close(ref missing, ref missing, ref missing);
            if (wordDocFile != null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(wordDocFile);
                wordDocFile = null;
            }
            if (wordDocInstance != null)
            {
                wordDocInstance.DDETerminateAll();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(wordDocInstance);
                wordDocInstance = null;
            }

            if (File.Exists(DocumentUpload.FileName))
            {
                File.Delete(HttpContext.Current.Server.MapPath(DocumentUpload.FileName));
            }
        }
示例#28
0
文件: Export.cs 项目: 303041859/Test
        /// <summary>
        /// 调用模板生成word
        /// </summary>
        /// <param name="templateFile">模板文件</param>
        /// <param name="fileName">生成的具有模板样式的新文件</param>
        public void ExportWord(string templateFile, string fileName)
        {
            try
               {
                   #region 生成word应用程序对象
                   //生成word程序对象
                   object obj = System.Reflection.Missing.Value;
                   Word.Application app = new Word.Application();

                   //模板文件
                   string TemplateFile = templateFile;

                   //生成的具有模板样式的新文件
                   string FileName = fileName;

                   //模板文件拷贝到新文件
                   File.Copy(TemplateFile, FileName);

                   //生成documnet对象
                   //Word.Document doc=app.Documents.Add(ref obj,ref obj,ref obj,ref,obj,ref obj);
                   Word.Document doc = new Word.Document();
                   object Obj_FileName = FileName;
                   object Visible = false;
                   object ReadOnly = false;
                   object missing = System.Reflection.Missing.Value;

                   //打开文件
                   doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                       ref missing, ref missing, ref missing, ref missing,
                       ref missing, ref missing, ref missing, ref Visible,
                       ref missing, ref missing, ref missing,
                       ref missing);
                   doc.Activate();
                   #endregion

                   //声明书签数组
                   object[] BookMark = new object[100];

                   //赋值书签名
                   BookMark[0] = "lb0001";
                   BookMark[1] = "lb0002";
                   BookMark[2] = "lb0003";
                   BookMark[3] = "lb0004";
                   BookMark[4] = "lb0005";
                   BookMark[5] = "lb0006";
                   BookMark[6] = "lb0007";
                   BookMark[7] = "lb0008";
                   BookMark[8] = "tb001";
                   BookMark[9] = "tb002";
                   BookMark[10] = "tb003";
                   BookMark[11] = "tb004";
                   BookMark[12] = "tb005";
                   BookMark[13] = "tb006";
                   BookMark[14] = "tb007";
                   BookMark[15] = "tb008";
                   BookMark[16] = "tb009";
                   BookMark[17] = "tb010";
                   BookMark[18] = "tb011";
                   BookMark[19] = "tb012";
                   BookMark[20] = "tb013";
                   BookMark[21] = "tb014";
                   BookMark[22] = "tb015";
                   BookMark[23] = "tb016";
                   BookMark[24] = "tb017";
                   BookMark[25] = "tb018";

                   //赋值任意数据到书签的位置
                   string str = "大同333";
                   doc.Bookmarks.get_Item(ref BookMark[0]).Range.Text = "7788";
                   doc.Bookmarks.get_Item(ref BookMark[1]).Range.Text = str;
                   doc.Bookmarks.get_Item(ref BookMark[2]).Range.Text = "50";
                   doc.Bookmarks.get_Item(ref BookMark[3]).Range.Text = "2号";
                   doc.Bookmarks.get_Item(ref BookMark[4]).Range.Text = "6";
                   doc.Bookmarks.get_Item(ref BookMark[5]).Range.Text = "200";

                   //添加图片
                   doc.Bookmarks.get_Item(ref BookMark[7]).Select();
                   app.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                   app.Selection.InlineShapes.AddPicture(@"E:\dzy\picture\12.png", ref missing, ref missing, ref missing);

                   ////判断指定的图片是否存在
                   //if (File.Exists(@"..\..\sources\images\12.png"))
                   //{
                   //    File.Delete(@"..\..\sources\images\12.png");
                   //}

                   #region 表格操作
                   //文档中创建表格
                   Range range = doc.Bookmarks.get_Item(ref BookMark[25]).Range;//表格插入位置
                   Word.Table newTable = doc.Tables.Add(range, 12, 3, ref missing, ref missing);

                   //设置表格样式
                   newTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleThickThinLargeGap;
                   newTable.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;
                   newTable.Columns[1].Width = 100f;
                   newTable.Columns[2].Width = 220f;
                   newTable.Columns[3].Width = 105f;

                   //填充表格内容
                   newTable.Cell(1, 1).Range.Text = "产品详细信息表";
                   newTable.Cell(1, 1).Range.Bold = 2;//设置单元格中字体为粗体

                   //合并单元格
                   newTable.Cell(1, 1).Merge(newTable.Cell(1, 3));
                   //app.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
                   //app.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中

                   //填充表格内容
                   newTable.Cell(2, 1).Range.Text = "产品基本信息";
                   newTable.Cell(2, 1).Range.Font.Color = Word.WdColor.wdColorDarkBlue;//设置单元格内字体颜色

                   //合并单元格
                   newTable.Cell(2, 1).Merge(newTable.Cell(2, 3));
                   //app.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;

                   //填充表格内容
                   newTable.Cell(3, 1).Range.Text = "品牌名称:";
                   newTable.Cell(3, 2).Range.Text = "品牌产地";

                   //纵向合并单元格
                   newTable.Cell(3, 3).Select();//选中一行
                   object moveUnit = Word.WdUnits.wdLine;
                   object moveCount = 5;
                   object moveExtend = Word.WdMovementType.wdExtend;
                   app.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend);
                   app.Selection.Cells.Merge();
                   newTable.Cell(12, 1).Range.Text = "产品特殊属性";
                   newTable.Cell(12, 1).Merge(newTable.Cell(12, 3));

                   //在表格中增加行
                   doc.Content.Tables[1].Rows.Add(ref missing);

                   //“落款”
                   doc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();
                   doc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
            #endregion

                   //输出数据到表格
                   string sql = "select * from 工作面信息表";
                   DataTable dt = db.Query(sql);
                   for (int i = 0; i < dt.Rows.Count; i++)
                   {
                       DataRow dr = dt.Rows[i];
                       string mm = dr["支架柱数"].ToString();
                       doc.Bookmarks.get_Item(ref BookMark[i + 9]).Range.Text = mm;

                   }

                   //输出完毕后关闭doc对象
                   object IsSave = true;
                   doc.Close(ref IsSave, ref missing, ref missing);

                   MessageBox.Show("生成“" + FileName + "”成功!");
               }

               catch (Exception Ex)
               {
                   MessageBox.Show(Ex.ToString());
                   return;
               }
        }
示例#29
0
        public string GetReport()
        {
            try
            {
                _wordApp = new Word.Application();
                _doc = _wordApp.Documents.Add(_templateWordPath);

                _doc.Bookmarks["Город"].Range.Text = City;
                _doc.Bookmarks["Дата"].Range.Text = Date.ToShortDateString();
                _doc.Bookmarks["Заказчик"].Range.Text = Customer;
                _doc.Bookmarks["ЗаказчикПодпись"].Range.Text = CustomerInitials;
                _doc.Bookmarks["Исполнитель"].Range.Text = Executor;
                _doc.Bookmarks["ИсполнительПодпись"].Range.Text = ExecutorInitials;
                _doc.Bookmarks["НаименованиеПредприятия"].Range.Text = Organization;
                _doc.Bookmarks["СрокиПорядки"].Range.Text = TimeAndOrders;
                _doc.Bookmarks["СрокНачало"].Range.Text = StartDate.ToShortDateString();
                _doc.Bookmarks["СрокОкончание"].Range.Text = EndDate.ToShortDateString();
                _doc.Bookmarks["Стоимость"].Range.Text = Cost.ToString("C0", new System.Globalization.CultureInfo("be-BY"));
                _doc.Bookmarks["Услуги"].Range.Text = Service;

                _doc.SaveAs2(FileName: _documnetSavePath, FileFormat: Word.WdSaveFormat.wdFormatPDF);

                return _documnetSavePath;
            }
            catch (Exception)
            {
            }
            finally
            {
                _doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
                _wordApp.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
            }
            return null;
        }
示例#30
0
    protected void btn_print_Click(object sender, EventArgs e)
    {
        try
        {
            RemoveFiles(Server.MapPath(".") + "\\");
        }
        catch { }

        Random rd  = new Random();
        int    oid = rd.Next(10000);

        string  id      = strSelectedId;
        string  sql_sel = "SELECT t1.验收编号,t1.环保意见,t1.原审批建设内容,t1.企业名称,t2.发文日期,t2.发文人,t2.抄送,t2.主题词,t2.发文机构,t1.实际建设内容 as 发送对象  FROM t_项目验收 t1,t_项目发文信息 t2 where t1.验收编号 = t2.项目编号 and t2.发文类型 = '其他函件' and t1.验收编号 = '" + id + "'";
        DataSet ds_sel  = new MyDataOp(sql_sel).CreateDataSet();

        if (ds_sel.Tables[0].Rows.Count > 0)
        {
            string[] xmbhTmp     = ds_sel.Tables[0].Rows[0][0].ToString().Split('-');
            string   xmbh1       = "20" + xmbhTmp[0].ToString();
            string   xmbh2       = xmbhTmp[1].ToString();
            string   spyj        = ds_sel.Tables[0].Rows[0][1].ToString();
            string   xmmc        = ds_sel.Tables[0].Rows[0][2].ToString();
            string   dwmc        = ds_sel.Tables[0].Rows[0][3].ToString();
            string   fwrq        = string.Empty;
            string   fwrqChinese = string.Empty;
            if (ds_sel.Tables[0].Rows[0][4].ToString().Trim() != null && ds_sel.Tables[0].Rows[0][4].ToString().Trim() != "")
            {
                fwrq        = DateTime.Parse(ds_sel.Tables[0].Rows[0][4].ToString()).ToString("yyyy年MM月dd日");
                fwrqChinese = DateConvert(DateTime.Parse(ds_sel.Tables[0].Rows[0][4].ToString()).ToString("yyyy-M-d"));
            }
            string fwr  = ds_sel.Tables[0].Rows[0][5].ToString();
            string cs   = ds_sel.Tables[0].Rows[0][6].ToString();
            string ztc  = ds_sel.Tables[0].Rows[0][7].ToString();
            string fwjg = ds_sel.Tables[0].Rows[0][8].ToString();
            string fsdx = ds_sel.Tables[0].Rows[0][9].ToString();

            try
            {
                string DocPath = ConfigurationManager.AppSettings["DocPath"].ToString();
                //string DocPath = "E:\\桐乡环保审批\\WebApp\\txsp\\Query\\";

                Word.Application app          = new Word.Application();
                string           TemplateFile = DocPath + "\\template\\template_zg.doc";

                //生成的具有模板样式的新文件
                string FileName = DocPath + "\\" + oid.ToString() + ".doc";

                File.Copy(TemplateFile, FileName);

                Word.Document doc = new Word.Document();

                object Obj_FileName = FileName;

                object Visible = false;

                object ReadOnly = false;

                object missing = System.Reflection.Missing.Value;

                //打开文件

                doc = app.Documents.Open(ref Obj_FileName,

                                         ref missing, ref ReadOnly, ref missing,

                                         ref missing, ref missing, ref missing, ref missing,

                                         ref missing, ref missing, ref missing, ref Visible,

                                         ref missing, ref missing, ref missing,

                                         ref missing);

                doc.Activate();

                string[] sqArr      = { "sq_xmbh_1", "sq_xmbh_2", "sq_xmmc", "sq_ysyj", "sq_date", "sq_cs", "sq_fsdx" };
                string[] replaceArr = { xmbh1, xmbh2, xmmc, spyj, fwrq, cs, fsdx };


                foreach (Word.Bookmark bm in doc.Bookmarks)
                {
                    switch (bm.Name)
                    {
                    case "sq_xmbh_1": bm.Select(); bm.Range.Text = replaceArr[0].ToString(); break;

                    case "sq_xmbh_2": bm.Select(); bm.Range.Text = replaceArr[1].ToString(); break;

                    case "sq_xmmc": bm.Select(); bm.Range.Text = replaceArr[2].ToString(); break;

                    //case "sq_ysyj": bm.Select(); bm.Range.Text = replaceArr[3].ToString(); break;
                    case "sq_date": bm.Select(); bm.Range.Text = replaceArr[4].ToString(); break;

                    case "sq_cs": bm.Select(); bm.Range.Text = replaceArr[5].ToString(); break;

                    case "sq_fsdx": bm.Select(); bm.Range.Text = replaceArr[6].ToString(); break;
                    }
                }

                object IsSave = true;
                doc.Close(ref IsSave, ref missing, ref missing);
                app.Application.Quit(ref missing, ref missing, ref missing);
                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "", "window.open('" + oid.ToString() + ".doc','theNewWindow',' left=0,top=0,width='+ (screen.availWidth - 10) +',height='+ (screen.availHeight-50) +',scrollbars,resizable=yes,toolbar=no')", true);
                // ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "", "window.open('" + oid.ToString() + ".doc','theNewWindow',' left=0,top=0,width='+ (screen.availWidth - 10) +',height='+ (screen.availHeight-50) +',scrollbars,resizable=yes,toolbar=no')", true);
            }
            catch { }
        }
    }
示例#31
0
        public string GetReport()
        {
            try
            {
                _wordApp = new Word.Application();
                _doc = _wordApp.Documents.Add(_wordPath);
                _doc.Bookmarks["ДатаЗачисления"].Range.Text = EnrollmentDate.ToShortDateString();
                _doc.Bookmarks["ДатаЗачисления2"].Range.Text = EnrollmentDate.ToShortDateString();
                _doc.Bookmarks["ДатаРождения"].Range.Text = BirthDay.ToShortDateString();
                _doc.Bookmarks["ИдентификационныйНомер"].Range.Text = PassportNumberId;
                _doc.Bookmarks["КатегорияТС"].Range.Text = Program;
                _doc.Bookmarks["МестоРождения"].Range.Text = BirthPlace;
                _doc.Bookmarks["НачалоОбучения"].Range.Text = StartDate.ToShortDateString();
                _doc.Bookmarks["НомерДоговора"].Range.Text = ContractNumber.ToString();
                _doc.Bookmarks["ПаспортДатаВыдачи"].Range.Text = PassportIssueDate.ToShortDateString();
                _doc.Bookmarks["ПаспортКемВыдан"].Range.Text = PassportIssueBy;
                _doc.Bookmarks["ПаспортСерияНомер"].Range.Text = PassportNumber;
                _doc.Bookmarks["ПостояннаяРегистрация"].Range.Text = Registration;
                _doc.Bookmarks["ПрактикаЧасов"].Range.Text = PracticeHours.ToString();
                _doc.Bookmarks["ПрограммаОбучения"].Range.Text = Program;
                _doc.Bookmarks["Продолжительность"].Range.Text = (PracticeHours + TheoryHours).ToString();
                _doc.Bookmarks["СтоимостьОбучения"].Range.Text = Cost.ToString();
                _doc.Bookmarks["ТелефонСот"].Range.Text = PhoneMobile;
                _doc.Bookmarks["ТеорияЧасов"].Range.Text = TheoryHours.ToString();
                _doc.Bookmarks["ТипГруппы"].Range.Text = GroupType;
                _doc.Bookmarks["ФИОкурсанта"].Range.Text = LastName + " " + Name + " " + MiddleName;
                _doc.Bookmarks["ФИОкурсанта2"].Range.Text = LastName + " " + Name + " " + MiddleName;

                _doc.SaveAs2(FileName: _saveAsPath, FileFormat: Word.WdSaveFormat.wdFormatPDF);

            }
            catch (Exception)
            {
            }
            finally
            {
                _doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
                _wordApp.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
            }
            return _saveAsPath;
        }
示例#32
0
 protected void Button1_Click(object sender, EventArgs e)
 {
     object Nothing = System.Reflection.Missing.Value;//定义一个missing
     wordApp = new Msword.ApplicationClass();//对wordapp进行初始化
     wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);//对一个wordDoc进行初始化
     object filename = "F:\\aa.doc";
     if (File.Exists(filename.ToString()))//判断文件是否存在
     {
         File.Delete(filename.ToString());//若文件存在就删除这个文件
     }
     wordApp.Visible = false;//设置动态建立的word文档可见
     wordApp.Selection.PageSetup.LeftMargin = wordApp.CentimetersToPoints(float.Parse("2"));//设置word文档的左边距
     wordApp.Selection.PageSetup.RightMargin = wordApp.CentimetersToPoints(float.Parse("2"));//设置word文档右边距
     wordApp.ActiveWindow.HorizontalPercentScrolled = 11;//设置文档的水平滑动距离
     wordApp.ActiveWindow.View.Type = Msword.WdViewType.wdOutlineView;//设置文档的页眉类型
     wordApp.ActiveWindow.View.SeekView = Msword.WdSeekView.wdSeekCurrentPageHeader;//设置文档的页眉是显示在文档的头部
     wordApp.ActiveWindow.ActivePane.Selection.InsertAfter("这是我的页眉内容");
     wordApp.Selection.ParagraphFormat.Alignment = Msword.WdParagraphAlignment.wdAlignParagraphRight;//设置页眉内容的对齐方式
     //wordApp.ActiveWindow.View.SeekView = Msword.WdSeekView.wdSeekMainDocument;//跳出页眉设置
     wordApp.Selection.ParagraphFormat.LineSpacing = 11f;//设置段落的距离为11f
     Msword.Paragraph para1;//定义一个段落为para1
     para1 = wordDoc.Paragraphs.Add(ref Nothing);//对para1进行初始化
     para1.Range.Text = "这是我的内容2这是我的内容2这是我的内容2这是我的内容2这是我的内容2这是我的内容2这是我的内容2这是我的内容2这是我的内容2";//对段落para1进行添加内容
     para1.Format.CharacterUnitFirstLineIndent = 2;//设置首行缩进
     para1.Range.Font.Color = Msword.WdColor.wdColorBlue;//设置字体的颜色
     para1.Format.SpaceAfter = 6;//在段落para1后面设置空行为6
     para1.Range.InsertParagraphAfter();//将段落para1添加到文档中
     Msword.Paragraph para2;//同上
     object endofdoc = "\\endofdoc";//定义标签endofdoc,"endofdoc"表示文档的末尾书签
     object range1 = wordDoc.Bookmarks.get_Item(ref endofdoc).Range;//定位到文档的书签处
     para2 = wordDoc.Paragraphs.Add(ref range1);//同上
     para2.Range.Text = "asfdasdfasdfasdffasdfsadfasdfasfdasdfas";//同上
     para2.Range.InsertParagraphAfter();//同上
     Msword.Paragraph para3;//同上
     object range2 = wordDoc.Bookmarks.get_Item(ref endofdoc).Range;//同上
     para3 = wordDoc.Paragraphs.Add(ref range2);//同上
     para3.Range.Text = "eeeeeeeeeeeeeeeeeeeeeeee";//同上
     object sttar = (object)(para3.Range.Start + 2);//"para3.Range.Start "表示para3段落的开始处加上两个字符
     object eend = (object)(para3.Range.Start + 2);//同上
     wordDoc.Range(ref sttar, ref eend).InsertBefore("ttt");//定位到para3段落的开始处加上两个字符并添加内容"ttt"
     para3.Format.CharacterUnitFirstLineIndent = 2;//设置首行缩进
     para3.Range.Font.Bold = 5;//设置段落para3字体颜色
     para3.Range.InsertParagraphAfter();//同上
     Msword.Table table1 = wordDoc.Tables.Add(para3.Range, 8, 8, ref Nothing, ref Nothing);//在文档中添加8行8列的表格
     table1.Cell(1, 1).Range.Font.Color = Msword.WdColor.wdColorBrown;//设置表格中的第1行1列的字体颜色为wdColorBrown
     table1.Cell(1, 1).Range.Text = "搜点的撒旦";//在表格中的第一行第一类中添加内容
     table1.Range.ParagraphFormat.Alignment = Msword.WdParagraphAlignment.wdAlignParagraphRight;//设置表格中的内容alignment
     table1.Cell(3, 3).Merge(table1.Cell(8, 3));//将3行3列一直到8行3列进行组合成一列
     object row = 4;
     object col = 4;
     table1.Cell(3, 1).Split(ref row, ref col);//将3行1列分开为4行4列
     string picturefile = "D:\\ly\\应用\\test.jpg";//设置图片的路径
     object linktofile = false;
     object linktodoctument = true;
     object x1 = (object)(para2.Range.Start);
     object x2 = (object)(para2.Range.End);
     object rr1 = wordDoc.Range(ref x1, ref x2);
     wordDoc.Application.ActiveDocument.InlineShapes.AddPicture(picturefile, ref linktofile, ref linktodoctument, ref rr1);//将图片添加到文档中
     //将图片的外形设置为可变
     Msword.Shape shape1 = wordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
     shape1.WrapFormat.Type = Msword.WdWrapType.wdWrapSquare;
     //保存wordDoc
     wordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
         ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
         ref Nothing, ref Nothing);
     //释放内存
     wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
     wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
 }
示例#33
0
 public void Dispose()
 {
     LogDebug("Closing Word.");
     _wordDoc?.Close(WdSaveOptions.wdDoNotSaveChanges);
     _wordApp?.Quit(WdSaveOptions.wdDoNotSaveChanges);
 }
示例#34
0
 public string GetReport()
 {
     try
     {
         _wordApp = new Word.Application();
         _doc = _wordApp.Documents.Add(_wordPath);
         _doc.Bookmarks["ГодРождения"].Range.Text = BirthDay.Year.ToString().Trim();
         _doc.Bookmarks["Гражданство"].Range.Text = Nationality;
         _doc.Bookmarks["ДатаЗачисления"].Range.Text = EnrollmentDate.ToShortDateString();
         _doc.Bookmarks["ДатаМесяцРождения"].Range.Text = BirthDay.Day + " " + GetMonthName(BirthDay.Month);
         _doc.Bookmarks["Должность"].Range.Text = JobPosition;
         _doc.Bookmarks["МедСправка"].Range.Text = "№" + MedicalNumber + " от " + MedicalDate.ToShortDateString() + ", " + MedicalName;
         _doc.Bookmarks["МестоРаботы"].Range.Text = Job;
         _doc.Bookmarks["МестоРождения"].Range.Text = BirthPlace;
         _doc.Bookmarks["Образование"].Range.Text = Education;
         _doc.Bookmarks["ОтФИО"].Range.Text = FIO;
         _doc.Bookmarks["ПаспортВыдан"].Range.Text = PassportIssueBy + " " + PassportIssueDate.ToShortDateString();
         _doc.Bookmarks["ПаспортСерия1"].Range.Text = PassportNumber.Substring(0, 2);
         _doc.Bookmarks["ПаспортСерия2"].Range.Text = PassportNumber.Substring(3, PassportNumber.Length - 3);
         _doc.Bookmarks["Программа"].Range.Text = Program;
         _doc.Bookmarks["Регистрация"].Range.Text = Registration;
         _doc.Bookmarks["ТелДом"].Range.Text = PhoneHome;
         _doc.Bookmarks["ТелМоб"].Range.Text = PhoneMobile;
         _doc.Bookmarks["ФИО"].Range.Text = LastName + " " + Name + " " + MiddleName;
         _doc.SaveAs2(FileName: _saveAsPath, FileFormat: Word.WdSaveFormat.wdFormatPDF);
     }
     catch (Exception)
     {
     }
     finally
     {
         _doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
         _wordApp.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
     }
     return _saveAsPath;
 }
示例#35
0
        //создание отчета для ЦА
        private async Task CreateReportCA(string file_path)
        {
            await Task.Run(() =>
            {
                //задаем текст и значения statusStrip
                this.Invoke((Action)delegate
                {
                    tsProgressBar.Value = 0;
                    tsStatusLabel.Text = "Открытие шаблона";
                });
                //берем значения рабочих и дней месяца
                string work_days = settings.tbWorkDays.Text;
                string month_in_days = settings.tbMonthDays.Text;
                //объявляем переменные для подсчета кол-ва работ проводимых каждый день и только в рабочие дни
                int count_work_days = 0;
                int count_month_in_days = 0;
                //создаем документ Word на основе шаблона и делаем его невидимым
                word_app = new Word.Application();
                word_doc = word_app.Documents.Add(file_path);
                word_app.Visible = false;
                //заменяем в документе <Period_month> на период
                WordReplace("<Period_month>", StringPeriod(true));
                //заменяем все <WorkDays> на число рабочих дней, а также подсчитываем их кол-во
                WordReplace("<WorkDays>", work_days, ref count_work_days);
                //также заменяем <MonthInDays> на число дней в месяце, а также посчитываем их кол-во
                WordReplace("<MonthInDays>", month_in_days, ref count_month_in_days);
                //заменяем переменную в документе на текущий период
                dynamic word_vars = word_doc.CustomDocumentProperties;
                dynamic word_var_period = word_vars["_Период"].Value = StringPeriod(true);
                //объявляем массив для дней из таблицы
                var dates_from_table = new List<DateTime>();
                //проход по таблице 
                for (int i = 0; i < dgvTable.Rows.Count; i++)
                {
                    //добавляем в массив каждую дату из таблицы
                    dates_from_table.Add((DateTime)dgvTable.Rows[i].Cells[0].Value);
                }
                //делаем словарь (Dictonary) с ключом - Дата, и значением - число заявок в этот день
                var dates_with_count_tickets = dates_from_table
                    .Select(DateTime => new { Date = DateTime, Count = dates_from_table.Count(d => d == DateTime) })
                    .Where(obj => obj.Count >= 1)
                    .Distinct()
                    .ToDictionary(obj => obj.Date, obj => obj.Count);
                //объявляем зубчатый массив [][,], где [день][кол-во заявок(кол-во строк),строки "дата завершения","номер кабинета","содержание","метод обращения"(кол-во столбцов)]
                object[][,] tickets = new object[dates_with_count_tickets.Count][,];
                //удаляем дубликаты из массива с днями
                dates_from_table = dates_from_table.Distinct().ToList();
                //объявляем перменные для номера дня из зубчатого массива и для индекса строки таблицы
                int day = 0;
                int row = 0;
                //проход по словарю
                foreach (var d in dates_with_count_tickets)
                {
                    //объявляем массив для дня с числом строк
                    tickets[day] = new object[d.Value, 4];
                    //проход по строкам
                    for (int i = 0; i < d.Value; i++)
                    {
                        //по столбцам
                        for (int j = 0; j < 4; j++)
                        {
                            //заносим в массив данные из таблицы
                            tickets[day][i, j] = dgvTable.Rows[row].Cells[j].Value.ToString();
                        }
                        //переход на след строку
                        row++;
                    }
                    //след день
                    day++;
                }
                //объвляем переменную для второй таблицы
                word_table2 = word_doc.Tables[2];
                // ищем последную ячейку
                Word.Cell last_cell = word_table2.Range.Cells[word_table2.Range.Cells.Count];
                // первая ячейка в последней строке
                Word.Cell cell_position_to_insert_rows = word_table2.Cell(last_cell.RowIndex, 1);
                // индекс строки, в которую будут записываться данные
                int row_to_insert_tickets = cell_position_to_insert_rows.RowIndex;
                // строка которая должна быть раскрашена
                int row_to_color = row_to_insert_tickets + 1;
                // индекс массива с определенным днем
                int number_of_massive = 0;
                // индекс ячейки, с которой необходимо начать объединять ячейки в первом столбце
                int row_start_merge = row_to_insert_tickets;
                // объявление переменной для подсчета кол-во плановых работ
                int tickets_planovie = 0;
                // переменная для подсчета обращений
                int tickets_obrascheniya = 0;
                // вставка необходимого кол-ва строк, -1 - т.к. 1 пустая строка уже вставлена
                for (int i = 0; i < dgvTable.Rows.Count - 1; i++)
                {
                    cell_position_to_insert_rows.Range.Rows.Add();
                    this.Invoke((Action)delegate
                    {
                        tsStatusLabel.Text = "Вставка строк";
                        tsProgressBar.Maximum = dgvTable.Rows.Count-1;
                        tsProgressBar.Value++;
                    });
                }
                this.Invoke((Action)delegate
                {
                    tsStatusLabel.Text = "Заполнение документа";
                    tsProgressBar.Value = 0;
                });
                // проход по массиву
                for (int i = 0; i < tickets.Length; i++)
                {
                    // первая ячейка в строке - дата
                    DateTime first_cell_in_row = (DateTime)Convert.ChangeType(tickets[number_of_massive][0, 0], typeof(DateTime));
                    // вставляем дату в документ
                    word_table2.Cell(row_to_insert_tickets, 1).Range.Text = first_cell_in_row.ToString("dd.MM.yyyy");
                    // проход по заявкам в каждом дне
                    for (int j = 0; j < tickets[number_of_massive].GetLength(0); j++)
                    {
                        //вставляем в таблицу данные из массива
                        word_table2.Cell(row_to_insert_tickets, 2).Range.Text = tickets[number_of_massive][j, 1].ToString();
                        word_table2.Cell(row_to_insert_tickets, 3).Range.Text = tickets[number_of_massive][j, 2].ToString();
                        word_table2.Cell(row_to_insert_tickets, 4).Range.Text = tickets[number_of_massive][j, 3].ToString();
                        // подсчитываем плановые
                        if (word_table2.Cell(row_to_insert_tickets, 4).Range.Text.Contains("Плановые работы"))
                        {
                            tickets_planovie++;
                        }
                        // если не плановые, то увеличиваем обращения
                        else tickets_obrascheniya++;
                        // переходим на след строку в документе
                        row_to_insert_tickets++;
                    }
                    // если строки не равны, то объеденияем ячейки
                    if (!(row_start_merge == row_to_insert_tickets - 1))
                    {
                        word_table2.Cell(row_start_merge, 1).Merge(word_table2.Cell(row_to_insert_tickets - 1, 1));
                    }
                    // переходим к след дню
                    row_start_merge = row_to_insert_tickets;
                    number_of_massive++;
                    this.Invoke((Action)delegate
                    {
                        tsStatusLabel.Text = "Заполнение документа";
                        tsProgressBar.Maximum = tickets.Length;
                        tsProgressBar.Value++;
                    });
                }
                // объявляем переменную для первой таблицы, в которую пишутся итоги
                word_table1 = word_doc.Tables[1];
                // берем все месячные работы из начала документа
                int planovie_calendar = ((int.Parse(work_days) * count_work_days) + (int.Parse(month_in_days) * count_month_in_days));
                // пишем кол-во обращений
                word_table1.Rows[2].Cells[2].Range.Text = tickets_obrascheniya.ToString();
                // пишем кол-во плановых работ
                word_table1.Rows[3].Cells[2].Range.Text = (planovie_calendar + tickets_planovie).ToString();
                // пишем общее кол-во заявок
                word_table1.Rows[4].Cells[2].Range.Text = (planovie_calendar + tickets_planovie + tickets_obrascheniya).ToString();
                // цвет для закраски чередующихся строк
                Color color_background = Color.FromArgb(222, 234, 246);
                // приводим цвет к совместимому с Word
                var word_background_color = (Microsoft.Office.Interop.Word.WdColor)(color_background.R + 0x100 * color_background.G + 0x10000 * color_background.B); ;
                // закрашиваем каждую вторую строку
                while (row_to_color < row_to_insert_tickets)
                {
                    word_table2.Cell(row_to_color, 2).Shading.BackgroundPatternColor = word_background_color;
                    word_table2.Cell(row_to_color, 3).Shading.BackgroundPatternColor = word_background_color;
                    word_table2.Cell(row_to_color, 4).Shading.BackgroundPatternColor = word_background_color;
                    row_to_color += 2;
                }

                this.Invoke((Action)delegate
                {
                    tsProgressBar.Value = 0;
                    tsStatusLabel.Text = "Готово!";
                    // окно сохранения документа
                    SaveFileDialog sfd = new SaveFileDialog();
                    // расширение по умеолчанию
                    sfd.DefaultExt = "docx";
                    // автоматом добавлять расширение
                    sfd.AddExtension = true;
                    // фильтр выводимых файлов в окне
                    sfd.Filter = "Документ Word(*.docx)|*.docx";
                    // фильтр по умолчанию
                    sfd.FilterIndex = 1;
                    // задаем имя документу
                    sfd.FileName = "Еженедельный-Месячный отчет " + StringPeriod(false);
                    // при нажатии "ОК"
                    if (sfd.ShowDialog() == DialogResult.OK)
                    {
                        // сохраняем документ
                        word_doc.SaveAs2(sfd.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, Type.Missing, Type.Missing);
                        // выводим окно с сообщением
                        MessageBox.Show("Готово!\nСхоранено в "+sfd.FileName);
                        // закрываем документ с сохранием
                        word_doc.Close(Word.WdSaveOptions.wdSaveChanges, Type.Missing, Type.Missing);
                        // закрываем приложение Word
                        word_app.Quit(Type.Missing, Type.Missing, Type.Missing);
                        // прибиваем процесс Word'a
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(word_app);
                        // сбрасываем ссылки на Word
                        word_doc = null;
                        word_app = null;
                        // пробуем удалить из памяти лишнее
                        GC.Collect();
                    }
                    // при любом другом действии
                    else
                    {
                        // закрываем документ без сохранения
                        word_doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges, Type.Missing, Type.Missing);
                        // закрываем приложение без сохранения
                        word_app.Quit(Word.WdSaveOptions.wdDoNotSaveChanges, Type.Missing, Type.Missing);
                        // убаваем процесс
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(word_app);
                        // сбрасываем ссылки
                        word_doc = null;
                        word_app = null;
                        // запуск сборщика мусора
                        GC.Collect();
                    }
                });


            });
        }
示例#36
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
               /* if (catalogsComboBox.SelectedIndex == 1)
                 {*/
                col = 0;
                    Microsoft.Office.Interop.Word.Application wdApp = new Microsoft.Office.Interop.Word.Application();
                    Microsoft.Office.Interop.Word.Document wdDoc = new Microsoft.Office.Interop.Word.Document();
                    wdDoc = wdApp.Documents.Add();
                    wdDoc.SpellingChecked = false;

                    wdDoc.ShowSpellingErrors = false;
                    wdApp.Selection.Font.Name = "Times New Roman";
                    wdApp.Selection.Font.Size = 12;
                    wdApp.ActiveDocument.Select();

                    string CommandText = "select * from `ads_paper`.`catalogItems` order by R1,R2,R3,R4";
                    string Connect = "Database=" + dbname + ";Data Source=" + server + ";User Id=" + dbuser + ";Password="******";Port="+dbPort;

                MySqlConnection myConnection = new MySqlConnection(Connect);
                MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);
                myConnection.Open(); //Устанавливаем соединение с базой данных.
                MySqlDataReader MyDataReader;

                bool state = false;
                MyDataReader = myCommand.ExecuteReader();
                int[] catID = new int[5];
                while (MyDataReader.Read())
                {
                    catID[0] = MyDataReader.GetInt32(0);
                    catID[1] = MyDataReader.GetInt32(2);
                    catID[2] = MyDataReader.GetInt32(3);
                    catID[3] = MyDataReader.GetInt32(4);
                    catID[4] = MyDataReader.GetInt32(5);
                    string name = MyDataReader.GetString(1); //Получаем строку

                    if (checkCount(catID))
                    {

                        wdApp.Selection.TypeParagraph();
                        if (catID[2] == 0)
                        {
                            wdApp.Selection.TypeText("@@" + catID[1].ToString());
                            wdApp.Selection.TypeParagraph();
                            wdApp.Selection.TypeParagraph();
                            wdApp.Selection.TypeText(name);
                            wdApp.Selection.TypeParagraph();
                            wdApp.Selection.TypeParagraph();

                        }
                        else if (catID[3] == 0)
                        {
                            if (catID[1] == 1 || catID[1] == 4 || catID[1] == 5 || catID[1] == 11 || catID[1] == 18)
                            {
                                wdApp.Selection.TypeText("-" + catID[1].ToString() + "." + catID[2].ToString() + "-");
                            }
                            else
                            {
                                wdApp.Selection.TypeText(catID[1].ToString() + "." + catID[2].ToString());
                            }

                            wdApp.Selection.TypeText(" "+name);
                            wdApp.Selection.TypeParagraph();
                            state = true;

                        }
                        else
                        {
                            //if (state == true)
                            //{
                            //    wdApp.Selection.TypeParagraph();
                            //}

                            wdApp.Selection.TypeText(name);
                            wdApp.Selection.TypeParagraph();
                            wdApp.Selection.TypeParagraph();
                            state = false;
                        }

                        PrintAdsOB(catID, ref wdApp);

                    }
                }
                MyDataReader.Close();
                myConnection.Close();
                ReplaceTextWord(ref wdApp, "  ", " ");
                wdApp.ActiveDocument.SaveAs("Объявления.doc");
                wdDoc.Close();
                //wdApp.Documents.Close();
                wdApp.Quit();
                MessageBox.Show("Выгрузка завершена, выгружено: "+col.ToString()+" объявлений");
                //mainForm f = new mainForm();
                    //f.catalogSelector.Select(1, 1);
                   /* TreeNodeCollection nodes = f.catalogList.Nodes;
                    foreach (TreeNode groupeNode in nodes)
                    {
                        PrintRecursive(groupeNode, ref wdApp);
                    }

                    ReplaceTextWord(ref wdApp, "@@@-", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@,", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@ -", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@ ", "@@@");
                    ReplaceTextWord(ref wdApp, ",,", ",");

                    //col++;

                    MessageBox.Show("Выгружено объявлений: " + col.ToString());
                    col = 0;
                    rubNum = 0;
              /* }
                else if (catalogsComboBox.SelectedIndex == 0)
                {
                    Microsoft.Office.Interop.Word.Application wdApp = new Microsoft.Office.Interop.Word.Application();
                    Microsoft.Office.Interop.Word.Document wdDoc = new Microsoft.Office.Interop.Word.Document();
                    wdDoc = wdApp.Documents.Add();
                    wdDoc.SpellingChecked = false;
                    wdDoc.ShowSpellingErrors = false;
                    wdApp.ActiveDocument.Select();
                    mainForm f = new mainForm();
                    f.catalogSelector.Select(0, 1);
                    TreeNodeCollection nodes = f.catalogList.Nodes;
                    foreach (TreeNode groupeNode in nodes)
                    {
                        PrintRecursiveRIO(groupeNode, ref wdApp);
                    }

                    ReplaceTextWord(ref wdApp, "@@@-", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@,", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@ -", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@ ", "@@@");
                    wdApp.ActiveDocument.SaveAs("РИО.doc");
                    wdDoc.Close();
                    //wdApp.Documents.Close();
                    wdApp.Quit();
                    //col++;

                    MessageBox.Show("Выгружено объявлений: " + col.ToString());
                    col = 0;
                    rubNum = 0;
                }
                else
                {
                    Microsoft.Office.Interop.Word.Application wdApp = new Microsoft.Office.Interop.Word.Application();
                    Microsoft.Office.Interop.Word.Document wdDoc = new Microsoft.Office.Interop.Word.Document();
                    wdDoc = wdApp.Documents.Add();
                    wdDoc.SpellingChecked = false;
                    wdDoc.ShowSpellingErrors = false;
                    wdApp.ActiveDocument.Select();
                    mainForm f = new mainForm();
                    f.catalogSelector.Select(0,1);
                    f.catalogSelector.SelectedIndex = 0;
                    TreeNodeCollection nodes = f.catalogList.Nodes;
                    foreach (TreeNode groupeNode in nodes)
                    {
                        PrintRecursiveOB(groupeNode, ref wdApp);
                    }

                    ReplaceTextWord(ref wdApp, "@@@-", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@,", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@ -", "@@@");
                    ReplaceTextWord(ref wdApp, "@@@ ", "@@@");
                    //wdApp.Selection.Select();
                    //wdApp.Selection.Font.
                    wdApp.ActiveDocument.SaveAs("Объявления.doc");
                    wdDoc.Close();
                    //wdApp.Documents.Close();
                    wdApp.Quit();
                    //col++;

                    MessageBox.Show("Выгружено объявлений: " + col.ToString());
                    col = 0;
                    rubNum = 0;
                }*/
            }
            catch (Exception except)
            {
                MessageBox.Show(except.Message);
            }
        }
示例#37
0
        public void zzylExportWord(string templateFile, string newfileName)
        {
            #region 生成word应用程序对象

            object obj = System.Reflection.Missing.Value;
            Word.Application app = new Word.Application();

            //模板文件
            string TemplateFile = templateFile;

            //生成的具有模板样式的新文件
            string newFileName = newfileName;

            //模板文件拷贝到新文件
            File.Copy(TemplateFile, newFileName);

            //生成documnet对象
            //Word.Document doc=app.Documents.Add(ref obj,ref obj,ref obj,ref,obj,ref obj);
            Word.Document doc = new Word.Document();
            object Obj_FileName = newFileName;
            object Visible = false;
            object ReadOnly = false;
            object missing = System.Reflection.Missing.Value;

            //打开文件
            doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref Visible,
                ref missing, ref missing, ref missing,
                ref missing);
            #endregion

            try
            {

                //生成word程序对象

                doc.Activate();

                //-----------数据煤矿名称读取操作----------
                string strsqltitle = "select 煤矿名称 from 煤矿基本信息表 ";
                DataTable dt = db.Query(strsqltitle);
                DataRow dr = dt.Rows[0];
                string inform = dr["煤矿名称"].ToString();
                //----------------------------------------------------------
                //获取当前系统时间不显示秒
                DateTime currentTime = System.DateTime.Now;
                string strnowtime = currentTime.ToString("f");

                //获取当前用户
                string currentuser = login.REAL_NAME;

                #region zzyl导出报表
                //---------------------取zzyl时间段-------------------
                string date_begin_hourzzyl = (comboBox5.Text == "") ? "0" : comboBox5.Text;
                string date_begin_minzzyl = (comboBox7.Text == "") ? "0" : comboBox7.Text;
                string date_over_hourzzyl = (comboBox6.Text == "") ? "23" : comboBox6.Text;
                string date_over_minzzyl = (comboBox8.Text == "") ? "59" : comboBox8.Text;

                string date_beginzzyl = dateTimePicker1.Text.ToString();
                date_beginzzyl += " " + date_begin_hourzzyl + ":" + date_begin_minzzyl;
                date_beginzzyl += ":00";
                string date_overzzyl = dateTimePicker2.Text.ToString();
                date_overzzyl += " " + date_over_hourzzyl + ":" + date_over_minzzyl;
                date_overzzyl += ":00";
                DateTime d_beginzzyl = DateTime.Parse(date_beginzzyl);
                DateTime d_overzzyl = DateTime.Parse(date_overzzyl);

                //----赋值zzyl数据到公共书签的位置---------------------
                doc.Bookmarks.get_Item(ref BookMark_zz[0]).Range.Text = inform;
                doc.Bookmarks.get_Item(ref BookMark_zz[1]).Range.Text = date_beginzzyl;
                doc.Bookmarks.get_Item(ref BookMark_zz[2]).Range.Text = date_overzzyl;
                doc.Bookmarks.get_Item(ref BookMark_zz[3]).Range.Text = strnowtime;
                doc.Bookmarks.get_Item(ref BookMark_zz[4]).Range.Text = currentuser;
                //-------------------------------------------------------------

                //---------------取支柱压力传感器编号与所选传感器列表相对应----------
                string cgqbh = "";
                int row_num = 0;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    cgqbh = dataGridView1.Rows[i].Cells["传感器编号"].Value.ToString();

                    //------------------------判断时间段内有数据做导出---------------------------------

                    //-----------------------------------------------------------------------------------

                    if ((bool)dataGridView1.Rows[i].Cells[1].FormattedValue) //前柱
                    {
                        fillword(cgqbh, "前柱", ref doc, row_num, d_beginzzyl, d_overzzyl);
                        row_num++;

                    }

                    if ((bool)dataGridView1.Rows[i].Cells[2].FormattedValue) //后柱
                    {

                        fillword(cgqbh, "后柱", ref doc, row_num, d_beginzzyl, d_overzzyl);
                        row_num++;

                    }

                    if ((bool)dataGridView1.Rows[i].Cells[3].FormattedValue) //前悬梁
                    {
                        fillword(cgqbh, "前悬梁", ref doc, row_num, d_beginzzyl, d_overzzyl);

                        row_num++;
                    }

                }

                //------------------------------------------------------------------------------------

                //-----------------------添加图片-----------------------------------------
                doc.Bookmarks.get_Item(ref BookMark_zz[68]).Select();
                app.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                //app.Selection.ParagraphFormat.AutoAdjustRightIndent=;
                InlineShape lipt=app.Selection.InlineShapes.AddPicture(@"D:\zzyl.bmp", ref missing, ref missing, ref missing);
                //将图片设置为四周环绕型
                //Word.Shape s = (Word.Shape)lipt.ConvertToShape();
                //s.WrapFormat.Type = WdWrapType.wdWrapSquare;

                ////判断指定的图片是否存在
                //if (File.Exists(@"..\..\sources\images\12.png"))
                //{
                //    File.Delete(@"..\..\sources\images\12.png");
                //}

                //-------------------------------------------------------------------------------------

                #endregion

                MessageBox.Show("生成“" + newFileName + "”成功!");
            }

            catch (Exception Ex)
            {
                MessageBox.Show(Ex.ToString());
                return;
            }

            finally
            {
                if (File.Exists(@"D:/zzyl.bmp"))
                {
                    //如果存在则删除
                    File.Delete(@"D:/zzyl.bmp");
                }

                //输出完毕后关闭doc对象
                object IsSave = true;
                doc.Close(ref IsSave, ref missing, ref missing);
            }
        }
示例#38
0
        private void button6_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Word.Application wdApp = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document wdDoc = new Microsoft.Office.Interop.Word.Document();
            wdDoc = wdApp.Documents.Add();

            string CommandText = "select * from " + dbname + ".ob where KOD_R=1 and KOD_PR=6 and KOD_PPR =5 and cost < 1800000 and cost > 1300000 and KOL_P>0" ;
            string Connect = "Database=" + dbname + ";Data Source=" + server + ";User Id=" + dbuser + ";Password="******";Port="+dbPort;

            //Переменная Connect - это строка подключения в которой:
            //БАЗА - Имя базы в MySQL
            //ХОСТ - Имя или IP-адрес сервера (если локально то можно и localhost)
            //ПОЛЬЗОВАТЕЛЬ - Имя пользователя MySQL
            //ПАРОЛЬ - говорит само за себя - пароль пользователя БД MySQL
            try
            {
                MySqlConnection myConnection = new MySqlConnection(Connect);
                MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);
                myConnection.Open(); //Устанавливаем соединение с базой данных.

                MySqlConnection myConnection2 = new MySqlConnection(Connect);
                MySqlCommand updateCommand = new MySqlCommand(CommandText, myConnection2);
                myConnection2.Open();
                // Gets a NumberFormatInfo associated with the en-US culture.
                NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;

                nfi.NumberDecimalDigits = 0;
                nfi.NumberGroupSeparator = " ";

                nfi.PositiveSign = "";
                MySqlDataReader MyDataReader;
                string date; //Получаем дату
                string phone; //Получаем строку
                string header; //Получаем строку
                string text; //Получаем строку
                int cost; //Получаем строку
                string catalog; //Получаем строку
                int toshow; //Получаем строку
                string id;
                MyDataReader = myCommand.ExecuteReader();

                while (MyDataReader.Read())
                {

                    header = MyDataReader.GetString(12); //Получаем строку
                    text = MyDataReader.GetString(13); //Получаем строку
                    phone = MyDataReader.GetString(14); //Получаем строку
                    id = MyDataReader.GetString(0); //Получаем id
                    cost = MyDataReader.GetInt32(20); //Получаем строку
                    //toshow = MyDataReader.GetUInt16(9); //Получаем строку
                    //catalog = MyDataReader.GetString(11); //Получаем строку

                    // wdApp.Selection.ClearFormatting();
                    // wdApp.Selection.Select();
                    //  wdApp.Selection.Characters.Last.Select();
                    wdApp.Selection.Font.Bold = 1;
                    wdApp.Selection.TypeText("" + cost.ToString("N", nfi));
                    wdApp.Selection.TypeText(" ");
                    // wdApp.Selection.Font.Bold = 0;
                    // wdApp.Selection.Select();
                    //  wdApp.Selection.Characters.Last.Select();
                    //  wdApp.Selection.ClearFormatting();
                    wdApp.Selection.Font.Bold = 0;
                    wdApp.Selection.TypeText(" руб.");
                    //wdApp.Selection.Font.Bold = 1;
                    wdApp.Selection.TypeParagraph();
                    // wdApp.Selection.Select();
                    //  wdApp.Selection.Characters.Last.Select();

                    //  wdApp.Selection.ClearFormatting();
                    //  wdApp.Selection.Font.Bold = 0;
                    wdApp.Selection.TypeText(header);
                    //  wdApp.Selection.Font.Bold = 0;
                    //  wdApp.Selection.Select();
                    //  wdApp.Selection.Characters.Last.Select();
                    //  wdApp.Selection.Font.Bold = 0;
                    //  wdApp.Selection.ClearFormatting();
                    wdApp.Selection.TypeText(" - " + text + " ");
                    //  wdApp.Selection.Select();
                    //  wdApp.Selection.Characters.Last.Select();
                    wdApp.Selection.TypeText(" " + phone);
                    //  wdApp.Selection.Font.Bold = 0;
                    wdApp.Selection.TypeParagraph();
                    //wdApp.Selection.TypeParagraph();
                    CommandText = "UPDATE `" + dbname + "`.`ob` SET `secondRub`='" + idRub + "' WHERE `ID_OB`='" + id + "'";
                    //MessageBox.Show(CommandText);
                    updateCommand.CommandText = CommandText;
                    int res = updateCommand.ExecuteNonQuery();
                    col++;
                    if (checkBox2.Checked)
                    {
                        //CommandText = "UPDATE `ads_paper`.`cards` SET `toshow`=" + (toshow - 1).ToString() + " WHERE `date`='" + date + "'";
                        //MessageBox.Show(CommandText);

                        //MySqlCommand updateCommand = new MySqlCommand(CommandText, myConnection2);
                        //int res = updateCommand.ExecuteNonQuery();
                    }

                }

                MyDataReader.Close();
                myConnection2.Close();
                myConnection.Close(); //Обязательно закрываем соединение!

                wdApp.ActiveDocument.SaveAs("Квартиры.doc");
                wdDoc.Close();
                //wdApp.Documents.Close();
                wdApp.Quit();

                //wdApp.Selection.TypeText("l");
                // Print each node recursively.

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

            }
        }
示例#39
0
        /// <summary>
        /// 调用模板生成word
        /// </summary>
        /// <param name="templateFile">模板文件</param>
        /// <param name="fileName">生成的具有模板样式的新文件</param>
        public void zkylExportWord(string templateFile, string newfileName)
        {
            #region 生成word应用程序对象
            object obj = System.Reflection.Missing.Value;
            Word.Application app = new Word.Application();

            //模板文件
            string TemplateFile = templateFile;

            //生成的具有模板样式的新文件
            string newFileName = newfileName;

            //模板文件拷贝到新文件
            File.Copy(TemplateFile, newFileName);

            //生成documnet对象
            //Word.Document doc=app.Documents.Add(ref obj,ref obj,ref obj,ref,obj,ref obj);
            Word.Document doc = new Word.Document();
            object Obj_FileName = newFileName;
            object Visible = false;
            object ReadOnly = false;
            object missing = System.Reflection.Missing.Value;

            //打开文件
            doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref Visible,
                ref missing, ref missing, ref missing,
                ref missing);
            #endregion

            try
            {

                doc.Activate();

                //声明书签数组
                object[] BookMarkzkyl = new object[70];

                #region 钻孔应力标签定位

                //赋值书签名
                BookMarkzkyl[0] = "zkyllbtitle";
                BookMarkzkyl[1] = "zkyltimestart";
                BookMarkzkyl[2] = "zkyltimeend";
                BookMarkzkyl[3] = "zkyltabledate";
                BookMarkzkyl[4] = "zkyltableman";
                BookMarkzkyl[5] = "zkylsensor01";
                BookMarkzkyl[6] = "zkylsensor02";
                BookMarkzkyl[7] = "zkylsensor03";
                BookMarkzkyl[8] = "zkylsensor04";
                BookMarkzkyl[9] = "zkylsensor05";
                BookMarkzkyl[10] = "zkylsensor06";
                BookMarkzkyl[11] = "zkylsensor07";
                BookMarkzkyl[12] = "zkylsensor08";
                BookMarkzkyl[13] = "zkylsensor09";
                BookMarkzkyl[14] = "zkylmintime01";
                BookMarkzkyl[15] = "zkylmintime02";
                BookMarkzkyl[16] = "zkylmintime03";
                BookMarkzkyl[17] = "zkylmintime04";
                BookMarkzkyl[18] = "zkylmintime05";
                BookMarkzkyl[19] = "zkylmintime06";
                BookMarkzkyl[20] = "zkylmintime07";
                BookMarkzkyl[21] = "zkylmintime08";
                BookMarkzkyl[22] = "zkylmintime09";
                BookMarkzkyl[23] = "zkylmaxtime01";
                BookMarkzkyl[24] = "zkylmaxtime02";
                BookMarkzkyl[25] = "zkylmaxtime03";
                BookMarkzkyl[26] = "zkylmaxtime04";
                BookMarkzkyl[27] = "zkylmaxtime05";
                BookMarkzkyl[28] = "zkylmaxtime06";
                BookMarkzkyl[29] = "zkylmaxtime07";
                BookMarkzkyl[30] = "zkylmaxtime08";
                BookMarkzkyl[31] = "zkylmaxtime09";
                BookMarkzkyl[32] = "zkylaverage01";
                BookMarkzkyl[33] = "zkylaverage02";
                BookMarkzkyl[34] = "zkylaverage03";
                BookMarkzkyl[35] = "zkylaverage04";
                BookMarkzkyl[36] = "zkylaverage05";
                BookMarkzkyl[37] = "zkylaverage06";
                BookMarkzkyl[38] = "zkylaverage07";
                BookMarkzkyl[39] = "zkylaverage08";
                BookMarkzkyl[40] = "zkylaverage09";
                BookMarkzkyl[41] = "zkylminvalue01";
                BookMarkzkyl[42] = "zkylminvalue02";
                BookMarkzkyl[43] = "zkylminvalue03";
                BookMarkzkyl[44] = "zkylminvalue04";
                BookMarkzkyl[45] = "zkylminvalue05";
                BookMarkzkyl[46] = "zkylminvalue06";
                BookMarkzkyl[47] = "zkylminvalue07";
                BookMarkzkyl[48] = "zkylminvalue08";
                BookMarkzkyl[49] = "zkylminvalue09";
                BookMarkzkyl[50] = "zkylmaxvalue01";
                BookMarkzkyl[51] = "zkylmaxvalue02";
                BookMarkzkyl[52] = "zkylmaxvalue03";
                BookMarkzkyl[53] = "zkylmaxvalue04";
                BookMarkzkyl[54] = "zkylmaxvalue05";
                BookMarkzkyl[55] = "zkylmaxvalue06";
                BookMarkzkyl[56] = "zkylmaxvalue07";
                BookMarkzkyl[57] = "zkylmaxvalue08";
                BookMarkzkyl[58] = "zkylmaxvalue09";
                BookMarkzkyl[59] = "zkylalamevent01";
                BookMarkzkyl[60] = "zkylalamevent02";
                BookMarkzkyl[61] = "zkylalamevent03";
                BookMarkzkyl[62] = "zkylalamevent04";
                BookMarkzkyl[63] = "zkylalamevent05";
                BookMarkzkyl[64] = "zkylalamevent06";
                BookMarkzkyl[65] = "zkylalamevent07";
                BookMarkzkyl[66] = "zkylalamevent08";
                BookMarkzkyl[67] = "zkylalamevent09";
                BookMarkzkyl[68] = "lbimagezkyl00";
                #endregion

                //-----------数据煤矿名称读取操作----------
                string strsqltitle = "select 煤矿名称 from 煤矿基本信息表 ";
                DataTable dt = db.Query(strsqltitle);
                DataRow dr = dt.Rows[0];
                string inform = dr["煤矿名称"].ToString();
                //----------------------------------------------------------
                //获取当前系统时间不显示秒
                DateTime currentTime = System.DateTime.Now;
                string strnowtime = currentTime.ToString("f");

                //获取当前用户
                string currentuser = login.REAL_NAME;

                #region 钻孔应力导出报表
                //---------------------取钻孔应力时间段-------------------
                string date_begin_hourzkyl = (comboBox16.Text == "") ? "0" : comboBox16.Text;
                string date_begin_minzkyl = (comboBox15.Text == "") ? "0" : comboBox15.Text;
                string date_over_hourzkyl = (comboBox14.Text == "") ? "23" : comboBox14.Text;
                string date_over_minzkyl = (comboBox13.Text == "") ? "59" : comboBox13.Text;

                string date_beginzkyl = dateTimePicker8.Text.ToString();
                date_beginzkyl += " " + date_begin_hourzkyl + ":" + date_begin_minzkyl;
                date_beginzkyl += ":00";
                string date_overzkyl = dateTimePicker7.Text.ToString();
                date_overzkyl += " " + date_over_hourzkyl + ":" + date_over_minzkyl;
                date_overzkyl += ":00";
                DateTime d_beginzkyl = DateTime.Parse(date_beginzkyl);
                DateTime d_overzkyl = DateTime.Parse(date_overzkyl);
                //----------------------------------------------------------------

                //----赋值钻孔应力数据到公共书签的位置---------------------
                doc.Bookmarks.get_Item(ref BookMarkzkyl[0]).Range.Text = inform;
                doc.Bookmarks.get_Item(ref BookMarkzkyl[1]).Range.Text = date_beginzkyl;
                doc.Bookmarks.get_Item(ref BookMarkzkyl[2]).Range.Text = date_overzkyl;
                doc.Bookmarks.get_Item(ref BookMarkzkyl[3]).Range.Text = strnowtime;
                doc.Bookmarks.get_Item(ref BookMarkzkyl[4]).Range.Text = currentuser;
                //-------------------------------------------------------------

                //---------------取钻孔应力传感器编号与所选传感器列表相对应----------
                string zkylcgqbh = "钻孔应力传感器编号='";
                for (int i = 0; i < dataGridView4.Rows.Count; i++)
                {

                    if (i == dataGridView4.Rows.Count - 1)
                        zkylcgqbh += dataGridView4.Rows[i].Cells["传感器编号"].Value.ToString() + "'";
                    else
                        zkylcgqbh += dataGridView4.Rows[i].Cells["传感器编号"].Value.ToString() + "' or 钻孔应力传感器编号='";

                }
                //------------------------------------------------------------------------------------

                //--------------------钻孔应力应力max、min、avg值实现----------------
                string sqlzkyldata = "SELECT  钻孔应力传感器编号, min([钻孔应力data]) as mindata ,round(avg([钻孔应力data]),2) as avgdata,max([钻孔应力data]) as maxdata FROM 钻孔应力传感器信息表 WHERE ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and( " + zkylcgqbh + ") Group by 钻孔应力传感器编号";

                DataTable zkyldr = db.Query(sqlzkyldata);//存放从钻孔应力传感器信息表中取出的数据

                int row_num = 0;
                for (int i = 0; i < dataGridView4.Rows.Count; i++)
                {
                    for (int j = 0; j < zkyldr.Rows.Count; j++)
                    {
                        if (zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() == dataGridView4.Rows[i].Cells["传感器编号"].Value.ToString())
                        {
                            string sql_pstion = "select 传感器安装位置 from 传感器信息表 where 传感器编号 ='" + dataGridView4.Rows[i].Cells["传感器编号"].Value.ToString() + "' ";
                            string pstion = (string)db.QueryScalar(sql_pstion);
                            doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 5]).Range.Text = dataGridView4.Rows[i].Cells["传感器编号"].Value.ToString() + @" / " + pstion;
                            doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 32]).Range.Text = zkyldr.Rows[j]["avgdata"].ToString();

                            string sqlzkyltime = "SELECT  钻孔应力传感器编号,钻孔应力观测时间 FROM 钻孔应力传感器信息表 WHERE ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and 钻孔应力传感器编号='" + zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() + "' and ([钻孔应力data]=" + zkyldr.Rows[j]["mindata"].ToString() + ") ";
                            DataTable zkyltimedt = db.Query(sqlzkyltime);//存放最小值观测时间
                            doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 14]).Range.Text = zkyldr.Rows[j]["mindata"].ToString() + "/" + zkyltimedt.Rows[0]["钻孔应力观测时间"].ToString();
                            sqlzkyltime = "SELECT  钻孔应力传感器编号,钻孔应力观测时间 FROM 钻孔应力传感器信息表 WHERE ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and 钻孔应力传感器编号='" + zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() + "' and ([钻孔应力data]=" + zkyldr.Rows[j]["maxdata"].ToString() + ") ";
                            DataTable zkyltimedt_max = db.Query(sqlzkyltime);//存放最小值观测时间
                            doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 23]).Range.Text = zkyldr.Rows[j]["maxdata"].ToString() + "/" + zkyltimedt_max.Rows[0]["钻孔应力观测时间"].ToString();

                            string zkylsqlalamvalue = "select 传感器编号,最大报警值1,最小报警值1 from 报警值信息表 where 传感器编号='" + zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() + "'";
                            DataTable zkylalamdr = db.Query(zkylsqlalamvalue); //存放从报警表中取的最大值、最小值预制数据
                            double min_alarm = double.NegativeInfinity;
                            double max_alarm = double.PositiveInfinity;
                            if (zkylalamdr.Rows.Count > 0)
                            {
                                doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 41]).Range.Text = zkylalamdr.Rows[0]["最小报警值1"].ToString();
                                doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 50]).Range.Text = zkylalamdr.Rows[0]["最大报警值1"].ToString();
                                if (zkylalamdr.Rows[0]["最小报警值1"].ToString() != "")
                                    min_alarm = double.Parse(zkylalamdr.Rows[0]["最小报警值1"].ToString());
                                if (zkylalamdr.Rows[0]["最大报警值1"].ToString() != "")
                                    max_alarm = double.Parse(zkylalamdr.Rows[0]["最大报警值1"].ToString());

                            }
                            string sqlalameventzkyl = "";
                            if (double.IsPositiveInfinity(max_alarm) && double.IsNegativeInfinity(min_alarm))
                                sqlalameventzkyl = "select 钻孔应力传感器编号,钻孔应力data,钻孔应力观测时间 from 钻孔应力传感器信息表 where 钻孔应力传感器编号='" + zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() + "' and ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and (1>2)";

                            else if (double.IsPositiveInfinity(max_alarm) && !double.IsNegativeInfinity(min_alarm))
                                sqlalameventzkyl = "select 钻孔应力传感器编号,钻孔应力data,钻孔应力观测时间 from 钻孔应力传感器信息表 where 钻孔应力传感器编号='" + zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() + "' and ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and (钻孔应力data <" + min_alarm + ")";
                            //"钻孔应力传感器编号='" + listBox4.Items[p].ToString()+"'"
                            else if (!double.IsPositiveInfinity(max_alarm) && double.IsNegativeInfinity(min_alarm))
                                sqlalameventzkyl = "select 钻孔应力传感器编号,钻孔应力data,钻孔应力观测时间 from 钻孔应力传感器信息表 where 钻孔应力传感器编号='" + zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() + "' and ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and (钻孔应力data >" + max_alarm + ")";
                            else
                                sqlalameventzkyl = "select 钻孔应力传感器编号,钻孔应力data,钻孔应力观测时间 from 钻孔应力传感器信息表 where 钻孔应力传感器编号='" + zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() + "' and ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and (钻孔应力data >" + max_alarm + " or 钻孔应力data <" + min_alarm + ")";

                            DataTable zkylalramnodt = db.Query(sqlalameventzkyl);//存钻孔应力传感器编号符合条
                            {
                                if (zkylalramnodt.Rows.Count == 1)
                                    doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 59]).Range.Text = zkylalramnodt.Rows[0]["钻孔应力data"].ToString() + "/" + zkylalramnodt.Rows[0]["钻孔应力观测时间"].ToString() + " ";
                                else if (zkylalramnodt.Rows.Count > 1)
                                    doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 59]).Range.Text = "共发生" + zkylalramnodt.Rows.Count.ToString() + "个报警事件";
                                else
                                    doc.Bookmarks.get_Item(ref BookMarkzkyl[row_num + 59]).Range.Text = "无";

                            }
                            row_num++;
                            break;
                        }
                    }

                }

                ////---------------取钻孔应力传感器编号与所选传感器列表相对应----------
                //string zkylcgqbh = "钻孔应力传感器编号='";
                //for (int i = 0; i < listBox6.Items.Count; i++)
                //{
                //    if (i == listBox6.Items.Count - 1)
                //        zkylcgqbh += listBox6.Items[i].ToString() + "'";
                //    else
                //        zkylcgqbh += listBox6.Items[i].ToString() + "' or 钻孔应力传感器编号='";

                //}
                ////-----------------------------------------------------------------------------------

                ////------------------------判断时间段内有数据做导出---------------------------------

                //string zkylsqljudgedata = "SELECT * FROM 钻孔应力传感器信息表 WHERE ([钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and " + zkylcgqbh + " order by 钻孔应力观测时间";
                //OleDbDataReader drzkyludgedata = db.Query_reader(zkylsqljudgedata);

                //if (drzkyludgedata.HasRows) //判断记录集是否包含一行或多行
                //{

                //}

                //else
                //{
                //    MessageBox.Show("此时间段内无数据,请选择其它时间段!");
                //    drzkyludgedata.Close();
                //    return;

                //}

                ////-----------------------------------------------------------------------------------

                ////--------------------钻孔应力应力max、min、avg值实现----------------
                //if (listBox6.Items.Count > 0)
                //{
                //    string sqlzkyldata = "SELECT  钻孔应力传感器编号, min([钻孔应力data]) as mindata ,round(avg([钻孔应力data]),2) as avgdata,max([钻孔应力data]) as maxdata FROM 钻孔应力传感器信息表 WHERE ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) and( " + zkylcgqbh + ") Group by 钻孔应力传感器编号";

                //    DataTable zkyldr = db.Query(sqlzkyldata);//存放从钻孔应力传感器信息表中取出的数据

                //    for (int i = 0; i < listBox6.Items.Count; i++)
                //    {

                //        for (int j = 0; j < zkyldr.Rows.Count; j++)
                //        {
                //            if (zkyldr.Rows[j]["钻孔应力传感器编号"].ToString() == listBox6.Items[i].ToString())
                //            {
                //                doc.Bookmarks.get_Item(ref BookMarkzkyl[i + 5]).Range.Text = listBox6.Items[i].ToString();
                //                doc.Bookmarks.get_Item(ref BookMarkzkyl[i + 32]).Range.Text = zkyldr.Rows[j]["avgdata"].ToString();
                //                zkylmindata[i] = zkyldr.Rows[j]["mindata"].ToString();//取压力最小值
                //                zkylmaxdata[i] = zkyldr.Rows[j]["maxdata"].ToString(); //取压力最大值

                //            }
                //        }

                //    }
                //}
                //else MessageBox.Show("请选择要导出数据的传感器!");
                ////--------------------------------------------------------------------

                ////------------------读取最小值检测时间实现---------------------------------------
                //for (int i = 0; i < listBox6.Items.Count; i++)
                //{
                //    //MessageBox.Show(multipleQuery.zkylmindata[i]);
                //    string sqlzkyltime = "SELECT  钻孔应力传感器编号,钻孔应力观测时间 FROM 钻孔应力传感器信息表 WHERE 钻孔应力传感器编号='" + listBox6.Items[i].ToString() + "' and ([钻孔应力data]=" + zkylmindata[i] + ") ";
                //    DataTable zkyltimedt = db.Query(sqlzkyltime);//存放最小值观测时间
                //    doc.Bookmarks.get_Item(ref BookMarkzkyl[i + 14]).Range.Text = zkylmindata[i] + "/" + zkyltimedt.Rows[0]["钻孔应力观测时间"].ToString();

                //}
                ////---------------------------------------------------------------------------------

                ////--------------------读取最大值检测时间实现------------------------------------------
                //for (int i = 0; i < listBox6.Items.Count; i++)
                //{
                //    string sqlzkyltime = "SELECT  钻孔应力传感器编号,钻孔应力观测时间 FROM 钻孔应力传感器信息表 WHERE 钻孔应力传感器编号='" + listBox6.Items[i].ToString() + "' and( " + zkylcgqbh + ")";
                //    DataTable zkyltimedt = db.Query(sqlzkyltime);//存放最大值观测时间
                //    doc.Bookmarks.get_Item(ref BookMarkzkyl[i + 23]).Range.Text = zkylmaxdata[i] + "/" + zkyltimedt.Rows[0]["钻孔应力观测时间"].ToString();

                //}
                ////------------------------------------------------------------------------------------

                ////-------------------------------最大最小报警值实现----------------------------------------

                //string zkylalamcgqbh = "传感器编号='";
                //for (int i = 0; i < listBox6.Items.Count; i++)
                //{
                //    if (i == listBox6.Items.Count - 1)
                //        zkylalamcgqbh += listBox6.Items[i].ToString() + "'";
                //    else
                //        zkylalamcgqbh += listBox6.Items[i].ToString() + "' or 传感器编号='";

                //}
                //string zkylsqlalamvalue = "select 传感器编号,最大报警值1,最小报警值1 from 报警值信息表 where(" + zkylalamcgqbh + ")";
                //DataTable zkylalamdr = db.Query(zkylsqlalamvalue); //存放从报警表中取的最大值、最小值预制数据

                ////-----------------新建一个数据表名字为alarmmgms存储数据为报警最大值与最小值及钻孔应力传感器编号---------------
                //DataTable dt_alarmzkyl = new DataTable("alarmmgms");

                //dt_alarmzkyl.Columns.Add("传感器编号", System.Type.GetType("System.String"));
                ////dt_alarm.Columns.Add("通道", System.Type.GetType("System.String"));

                //dt_alarmzkyl.Columns.Add("最大报警值", System.Type.GetType("System.Double"));
                //dt_alarmzkyl.Columns.Add("最小报警值", System.Type.GetType("System.Double"));
                ////------------------------------------------------------------------------------------------------------

                //for (int k = 0; k < listBox6.Items.Count; k++)
                //{
                //    DataRow dr_alarmzkyl = dt_alarmzkyl.NewRow();//读报警值表存放最大报警值、最小、及其编号
                //    dr_alarmzkyl["传感器编号"] = listBox6.Items[k].ToString();
                //    dr_alarmzkyl["最大报警值"] = double.PositiveInfinity;
                //    dr_alarmzkyl["最小报警值"] = double.NegativeInfinity;
                //    for (int m = 0; m < zkylalamdr.Rows.Count; m++)
                //    {
                //        if (zkylalamdr.Rows[m]["传感器编号"].ToString() == listBox6.Items[k].ToString())
                //        {
                //            doc.Bookmarks.get_Item(ref BookMarkzkyl[k + 41]).Range.Text = zkylalamdr.Rows[m]["最小报警值1"].ToString();
                //            doc.Bookmarks.get_Item(ref BookMarkzkyl[k + 50]).Range.Text = zkylalamdr.Rows[m]["最大报警值1"].ToString();
                //            //mgmsalameventmax = (float)zkylalamdr.Rows[m]["最大报警值1"];
                //            ////MessageBox.Show(mgmsalameventmax.ToString());
                //            //mgmsalameventmin = (float)zkylalamdr.Rows[m]["最小报警值1"];
                //            //sensor[m] = zkylalamdr.Rows[m]["传感器编号"].ToString();
                //            //---------------------最大、最小存值----------------
                //            dr_alarmzkyl["最大报警值"] = float.Parse((string)zkylalamdr.Rows[m]["最大报警值1"]);
                //            dr_alarmzkyl["最小报警值"] =float.Parse((string)zkylalamdr.Rows[m]["最小报警值1"]);
                //            //----------------------------------------------
                //        }

                //    }
                //    dt_alarmzkyl.Rows.Add(dr_alarmzkyl);
                //}

                ////--------------------------报警事件的个数-----------------------------

                //for (int n = 0; n < listBox6.Items.Count; n++)
                //{

                //    if (dt_alarmzkyl.Rows.Count > 0)
                //    {
                //        //string sensorevent = "钻孔应力传感器编号='" + sensor[n] + "'";
                //        //MessageBox.Show(sensorevent);
                //        //--------------------判断是否设置报警值的上下限--------------------------
                //        string zkylselect_str = "";
                //        if (double.IsNegativeInfinity((double)dt_alarmzkyl.Rows[n]["最小报警值"]) && double.IsPositiveInfinity((double)dt_alarmzkyl.Rows[n]["最大报警值"]))
                //            zkylselect_str = "1>1";
                //        else if ((double)dt_alarmzkyl.Rows[n]["最大报警值"] == -1 && (double)dt_alarmzkyl.Rows[n]["最小报警值"] != -1)
                //            zkylselect_str = "钻孔应力data<" + (double)dt_alarmzkyl.Rows[n]["最小报警值"];
                //        //"钻孔应力传感器编号='" + listBox6.Items[p].ToString()+"'"
                //        else if ((double)dt_alarmzkyl.Rows[n]["最大报警值"] != -1 && (double)dt_alarmzkyl.Rows[n]["最小报警值"] == -1)
                //        {
                //            zkylselect_str = "钻孔应力data>" + (double)dt_alarmzkyl.Rows[n]["最大报警值"];
                //            //MessageBox.Show(select_str);
                //        }
                //        else
                //            zkylselect_str = "钻孔应力data>" + (double)dt_alarmzkyl.Rows[n]["最大报警值"] + " or " + "钻孔应力data<" + (double)dt_alarmzkyl.Rows[n]["最小报警值"];
                //        //MessageBox.Show(dt_alarm.Rows[n]["传感器编号"].ToString());
                //        //--------------------------------------------------------------------------------------------

                //        //--------------------------------取已设报警值的钻孔应力传感器编号-----------------
                //        string zkylalamsensorno = "钻孔应力传感器编号='" + listBox6.Items[n].ToString() + "'";

                //        //---------------------------------------------------------------------

                //        string sqlalameventzkyl = "select 钻孔应力传感器编号,钻孔应力data,钻孔应力观测时间 from 钻孔应力传感器信息表 where(" + zkylalamsensorno + ") and ( [钻孔应力观测时间] Between  #" + d_beginzkyl + "# And #" + d_overzkyl + "#) ";
                //        DataTable zkylalramnodt = db.Query(sqlalameventzkyl);//存钻孔应力传感器编号符合条件的报警值
                //        if (zkylselect_str != "")
                //        {
                //            DataRow[] alarmzkyl = zkylalramnodt.Select(zkylselect_str); //存所有报警值
                //            // DataRow[] alammin = alamnodt.Select("钻孔应力data<" + mgmsalameventmin);

                //            if (alarmzkyl.Length == 1)
                //                doc.Bookmarks.get_Item(ref BookMarkzkyl[n + 59]).Range.Text = alarmzkyl[0]["钻孔应力data"].ToString() + " " + alarmzkyl[0]["钻孔应力观测时间"].ToString() + " ";
                //            else if (alarmzkyl.Length > 1)
                //                doc.Bookmarks.get_Item(ref BookMarkzkyl[n + 59]).Range.Text = "共发生" + alarmzkyl.Length.ToString() + "个报警事件";
                //            else
                //                doc.Bookmarks.get_Item(ref BookMarkzkyl[n + 59]).Range.Text = "无";
                //        }
                //    }

                //}

                //-----------------------添加图片-----------------------------------------
                doc.Bookmarks.get_Item(ref BookMarkzkyl[68]).Select();
                app.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                app.Selection.InlineShapes.AddPicture(@"D:\d.bmp", ref missing, ref missing, ref missing);

                ////判断指定的图片是否存在
                //if (File.Exists(@"..\..\sources\images\12.png"))
                //{
                //    File.Delete(@"..\..\sources\images\12.png");
                //}

                //-------------------------------------------------------------------------------------

                #endregion

                MessageBox.Show("生成“" + newFileName + "”成功!");
            }

            catch (Exception Ex)
            {
                MessageBox.Show(Ex.ToString());
                return;
            }

            finally
            {
                //输出完毕后关闭doc对象
                object IsSave = true;
                doc.Close(ref IsSave, ref missing, ref missing);
            }
        }
示例#40
0
        public string GetReport()
        {
            try
            {
                _wordApp = new Word.Application();
                _doc = _wordApp.Documents.Add(_templateWordPath);

                _doc.Bookmarks["Город"].Range.Text = City;
                _doc.Bookmarks["Дата"].Range.Text = Date.ToShortDateString();
                _doc.Bookmarks["ДатаДоговора"].Range.Text = ContractDate.ToShortDateString();
                _doc.Bookmarks["ДатаДоговора2"].Range.Text = ContractDate.ToShortDateString();
                _doc.Bookmarks["ДатаДоговора3"].Range.Text = ContractDate.ToShortDateString();
                _doc.Bookmarks["ДатаОкончания"].Range.Text = EndDate.ToShortDateString();
                _doc.Bookmarks["Директор"].Range.Text = Director;
                _doc.Bookmarks["Заказчик"].Range.Text = Customer;
                _doc.Bookmarks["ЗаказчикФИО"].Range.Text = CustomerFIO;
                _doc.Bookmarks["НомерДоговора"].Range.Text = ContractNumber.ToString();
                _doc.Bookmarks["НомерДоговора2"].Range.Text = ContractNumber.ToString();
                _doc.Bookmarks["НомерДоговора3"].Range.Text = ContractNumber.ToString();
                _doc.Bookmarks["ПаспортВыдан"].Range.Text = string.Format("{0} {1} г.", PassportIssuedBy, PassportIssuedDate.ToShortDateString());
                _doc.Bookmarks["ПаспортНомер"].Range.Text = PassportNumber;
                _doc.Bookmarks["ПаспортСерия"].Range.Text = PassportSeries;
                _doc.Bookmarks["Подрядчик"].Range.Text = Contractor;
                _doc.Bookmarks["ПодрядчикФИО"].Range.Text = ContractorFIO;
                _doc.Bookmarks["Работы"].Range.Text = Services;
                _doc.Bookmarks["ФактическаяДатаОкончания"].Range.Text = ActualEndDate.ToShortDateString();

                _doc.SaveAs2(FileName: _documnetSavePath, FileFormat: Word.WdSaveFormat.wdFormatPDF);

                return _documnetSavePath;
            }
            catch (Exception)
            {
            }
            finally
            {
                _doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
                _wordApp.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
            }
            return null;
        }
示例#41
0
        private void button2_Click(object sender, EventArgs e)
        {
            var filePath = AppDomain.CurrentDomain.BaseDirectory + "test.dotx";//文档路径
            Word.Application appWord = new Word.Application();
            Word.Document doc = new Word.Document();
            object oMissing = System.Reflection.Missing.Value;
            //打开模板文档,并指定doc的文档类型
            object objTemplate = filePath;
            object objDocType = Word.WdDocumentType.wdTypeDocument;
            object objFalse = false;
            object objTrue = true;
            doc = (Word.Document)appWord.Documents.Add(ref objTemplate, ref objFalse, ref objDocType, ref objTrue);

            foreach (Word.ContentControl item in appWord.ActiveDocument.ContentControls)
            {
                if (item.Tag == "Information")
                {
                    item.Range.Text = "紫川软件测试";

                }
            }

            object savePath = AppDomain.CurrentDomain.BaseDirectory + "test1.docx";   //文档另存为的路径
            object missingValue = Type.Missing;
            object miss = System.Reflection.Missing.Value;
            object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
            doc.SaveAs2(ref savePath);
            doc.Close(ref doNotSaveChanges, ref missingValue, ref missingValue);
            appWord.Application.Quit(ref miss, ref miss, ref miss);
            doc = null;
            appWord = null;
        }
示例#42
0
        /// <summary>
        /// Метод создания и сохранения документов
        /// в форматах Microsoft Word (doc, PDF),
        /// Excel (exls)
        /// </summary>
        /// <param name="type">Тип создаваемого документа
        /// отчёт или статистика</param>
        /// <param name="format">Формат сохранения
        /// документ или таблица</param>
        /// <param name="name">Название документа</param>
        /// <param name="table">Входная таблица с данными</param>
        public void Document_Create(Document_Type type,
                                    Document_Format format, string name,
                                    DataTable table)
        {
            string filename = "";

            if (format == Document_Format.Word)
            {
                System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog();
                saveFileDialog.Filter = "Word документ (*.doc)|*.doc|Все файлы (*.*)|*.*";
                if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }
                filename = saveFileDialog.FileName;
            }


            //Получение данных о конфигурации документа
            Configuration_class configuration_Class
                = new Configuration_class();

            configuration_Class.Document_Configuration_Get();
            //Проверка на пустоту названия
            switch (name != "" || name != null)
            {
            case true:
                //Выбор формата либо Word либо PDF

                //Запуск процесса в дистпечере задач
                word.Application application
                    = new word.Application();
                //создание документа в процессе
                word.Document document
                //Присвоение документа процессу, Visible: true
                //возможность редактирования документа
                    = application.Documents.Add(Visible: true);
                try
                {
                    //Объявление дипапазона для формирования текста
                    word.Range range = document.Range(0, 0);
                    //Настройка отступов в документе
                    document.Sections.PageSetup.LeftMargin
                        = application.CentimetersToPoints(
                              (float)Configuration_class.
                              doc_Left_Merge);
                    document.Sections.PageSetup.TopMargin
                        = application.CentimetersToPoints(
                              (float)Configuration_class.
                              doc_Top_Merge);
                    document.Sections.PageSetup.RightMargin
                        = application.
                          CentimetersToPoints((float)
                                              Configuration_class.doc_Right_Merg);
                    document.Sections.PageSetup.BottomMargin
                        = application.CentimetersToPoints(
                              (float)Configuration_class.
                              doc_Bottom_Merge);
                    //Присвоение текстового знеачения в дипазон
                    range.Text =
                        Configuration_class.Organization_Name;
                    //Настройка выравнивания текста
                    range.ParagraphFormat.Alignment =
                        word.WdParagraphAlignment.
                        wdAlignParagraphCenter;
                    //Настройка интервала после абзаца
                    range.ParagraphFormat.SpaceAfter = 1;
                    //Настройка интервала перед абзаца
                    range.ParagraphFormat.SpaceBefore = 1;
                    //Настройка межстрочного интервала
                    range.ParagraphFormat.LineSpacingRule
                        = word.WdLineSpacing.wdLineSpaceSingle;
                    //Настройка названия шрифта
                    range.Font.Name = "Times New Roman";
                    //Настройка размера шрифта
                    range.Font.Size = 12;
                    //Добавление параграфов
                    document.Paragraphs.Add();            //В конце текста
                    document.Paragraphs.Add();            //Свободный
                    document.Paragraphs.Add();            //Для будущего текста
                    //Параграф для названия документа
                    word.Paragraph Document_Name
                        = document.Paragraphs.Add();
                    //Настройка параграфа через свойство диапазона
                    Document_Name.Format.Alignment
                        = word.WdParagraphAlignment.wdAlignParagraphCenter;
                    Document_Name.Range.Font.Name = "Times New Roman";
                    Document_Name.Range.Font.Size = 16;
                    //Проверка на тип документа, отчёт или статистика
                    switch (type)
                    {
                    case Document_Type.Report:
                        Document_Name.Range.Text = "ОТЧЁТ";

                        break;

                    case Document_Type.Statistic:
                        Document_Name.Range.Text = "СТАТИСТИЧЕСКИЙ ОТЧЁТ";
                        break;

                    case Document_Type.List:
                        Document_Name.Range.Text = "СПИСОК СОТРУДНИКОВ";
                        break;

                    case Document_Type.Check:
                        Document_Name.Range.Text = "ЧЕК";
                        break;
                    }
                    document.Paragraphs.Add();
                    document.Paragraphs.Add();
                    document.Paragraphs.Add();
                    word.Paragraph statparg = document.Paragraphs.Add();
                    //Создание области таблицы в документе


                    if (type == Document_Type.Check)
                    {
                        word.Table stat_table2
                            = document.Tables.Add(statparg.Range,
                                                  2, 5);
                        stat_table2.Borders.InsideLineStyle
                            = word.WdLineStyle.wdLineStyleSingle;
                        //Настройка границ таблицы внешние
                        stat_table2.Borders.OutsideLineStyle
                            = word.WdLineStyle.wdLineStyleSingle;
                        //Выравнивание текста внутри ячеек по ширине
                        stat_table2.Rows.Alignment
                            = word.WdRowAlignment.wdAlignRowCenter;
                        //Выравнивание текста внутри ячеек по высоте
                        stat_table2.Range.Cells.VerticalAlignment =
                            word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                        stat_table2.Range.Font.Size       = 11;
                        stat_table2.Range.Font.Name       = "Times New Roman";
                        stat_table2.Cell(1, 1).Range.Text = "Цена";
                        stat_table2.Cell(1, 2).Range.Text = "Дата";
                        stat_table2.Cell(1, 3).Range.Text = "Фамилия";
                        stat_table2.Cell(1, 4).Range.Text = "Имя";
                        stat_table2.Cell(1, 5).Range.Text = "Отчество";
                        stat_table2.Cell(2, 1).Range.Text = table.Rows[0][0].ToString();
                        stat_table2.Cell(2, 2).Range.Text = table.Rows[0][1].ToString();
                        stat_table2.Cell(2, 3).Range.Text = table.Rows[0][2].ToString();
                        stat_table2.Cell(2, 4).Range.Text = table.Rows[0][3].ToString();
                        stat_table2.Cell(2, 5).Range.Text = table.Rows[0][4].ToString();
                    }



                    if (type != Document_Type.Check)
                    {
                        word.Table stat_table
                        //Добавление таблицы в область документа
                        //Указывается параграф в котором документ создан
                        //Количество строк и столбцов
                            = document.Tables.Add(statparg.Range,
                                                  table.Rows.Count, table.Columns.Count);

                        //Настройка границ таблицы внутренние
                        stat_table.Borders.InsideLineStyle
                            = word.WdLineStyle.wdLineStyleSingle;
                        //Настройка границ таблицы внешние
                        stat_table.Borders.OutsideLineStyle
                            = word.WdLineStyle.wdLineStyleSingle;
                        //Выравнивание текста внутри ячеек по ширине
                        stat_table.Rows.Alignment
                            = word.WdRowAlignment.wdAlignRowCenter;
                        //Выравнивание текста внутри ячеек по высоте
                        stat_table.Range.Cells.VerticalAlignment =
                            word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                        stat_table.Range.Font.Size = 11;
                        stat_table.Range.Font.Name = "Times New Roman";
                        //Индексация столбцов и строк в Word начинается с 1,1
                        for (int row = 1; row <= table.Rows.Count; row++)
                        {
                            for (int col = 1; col <= table.Columns.Count; col++)
                            {
                                stat_table.Cell(row, col).Range.Text
                                    = table.Rows[row - 1][col - 1].ToString();
                            }
                        }
                    }



                    document.Paragraphs.Add();
                    document.Paragraphs.Add();
                    //Парадграф с фиксациейц даты создания документа
                    word.Paragraph Footparg = document.Paragraphs.Add();
                    Footparg.Range.Text =
                        string.Format("Дата создания \t\t\t{0}",
                                      DateTime.Now.ToString("dd.MM.yyyy"));
                }
                catch (Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }
                finally
                {
                    switch (format)
                    {
                    case Document_Format.Word:
                        //Сохранение документа с названием из метода,
                        //и в формате doc
                        document.SaveAs2(filename,
                                         word.WdSaveFormat.wdFormatDocument);
                        //document.SaveAs2(string.Format("{0}\\{1}",Environment.CurrentDirectory, name) ,
                        //    word.WdSaveFormat.wdFormatDocument); filename
                        document.Close();
                        break;

                    case Document_Format.PDF:
                        //Сохранение документа в формате PDF
                        document.SaveAs2(string.Format("{0}\\{1}", Environment.CurrentDirectory, name),
                                         word.WdSaveFormat.wdFormatPDF);
                        break;
                    }
                    //Закрываем документ

                    //Выходим из процесса с его закрытием
                    application.Quit();
                }
                break;
            }
        }