Esempio n. 1
0
        public void Init(string templateParh = "", string hash = "")
        {
            application = new Word.Application();
            object templatePathObj = templateParh;

            try
            {
                if (templateParh == String.Empty)
                {
                    document = application.Documents.Add(ref missingObj, ref missingObj, ref missingObj, ref missingObj);
                }
                else
                {
                    templatePathObj = AppDomain.CurrentDomain.BaseDirectory + "\\reports\\" + templatePathObj;
                    document        = application.Documents.Add(ref templatePathObj, ref missingObj, ref missingObj, ref missingObj);
                }
            }
            catch (Exception)
            {
                document.Close(ref falseObj, ref missingObj, ref missingObj);
                application.Quit(ref missingObj, ref missingObj, ref missingObj);
                document    = null;
                application = null;
                throw;
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Relase doc
 /// </summary>
 public void ReleaseDoc()
 {
     try
     {
         if (null != _Document)
         {
             _Document.Close(ref _wdNotSaveObj, ref _oMissing, ref _oMissing);
             _Document = null;
         }
     }
     catch (System.Exception ex)
     {
         Console.WriteLine("Failed to release doc: " + ex.Message);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 修改word表格中指定单元格的数据
        /// </summary>
        /// <param name="fileName">word文档包括路径</param>
        /// <param name="rowIndex">行</param>
        /// <param name="colIndex">列</param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static bool UpdateWordTableByCell(string fileName, int rowIndex, int colIndex, string content)
        {
            Microsoft.Office.Interop.Word._Application cls   = null;
            Microsoft.Office.Interop.Word._Document    doc   = null;
            Microsoft.Office.Interop.Word.Table        table = null;
            object missing = System.Reflection.Missing.Value;
            object path    = fileName;

            cls = new Application();
            try
            {
                doc = cls.Documents.Open
                          (ref path, 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);

                table = doc.Tables[1];
                //doc.Range( ref 0, ref 0 ).InsertParagraphAfter();//插入回车
                table.Cell(rowIndex, colIndex).Range.InsertParagraphAfter();//.Text = content;
                return(true);
            }
            catch
            {
                return(false);
            }
            finally
            {
                if (doc != null)
                {
                    doc.Close(ref missing, ref missing, ref missing);
                    cls.Quit(ref missing, ref missing, ref missing);
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 读取Word表格中某个单元格的数据。其中的参数分别为文件名(包括路径),行号,列号。
        /// </summary>
        /// <param name="fileName">word文档</param>
        /// <param name="rowIndex">行</param>
        /// <param name="colIndex">列</param>
        /// <returns>返回数据</returns>
        public static string ReadWord_tableContentByCell(string fileName, int rowIndex, int colIndex)
        {
            Microsoft.Office.Interop.Word._Application cls   = null;
            Microsoft.Office.Interop.Word._Document    doc   = null;
            Microsoft.Office.Interop.Word.Table        table = null;
            object missing = System.Reflection.Missing.Value;
            object path    = fileName;

            cls = new Application();
            try
            {
                doc = cls.Documents.Open
                          (ref path, 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);
                table = doc.Tables[1];
                string text = table.Cell(rowIndex, colIndex).Range.Text.ToString();
                text = text.Substring(0, text.Length - 2);   //去除尾部的mark
                return(text);
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
            finally
            {
                if (doc != null)
                {
                    doc.Close(ref missing, ref missing, ref missing);
                }
                cls.Quit(ref missing, ref missing, ref missing);
            }
        }
Esempio n. 5
0
        public void close()
        {
            // 指定文档的保存操作。可以是下列 WdSaveOptions 值之一:
            // wdDoNotSaveChanges、wdPromptToSaveChanges 或 wdSaveChanges。
            // Object SaveChanges = Word.WdSaveOptions.wdSaveChanges;
            Object DoNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;

            // 指定文档的保存格式。可以是下列 WdOriginalFormat 值之一:
            // wdOriginalDocumentFormat、wdPromptUser 或 wdWordDocument。
            Object OriginalFormat = Word.WdOriginalFormat.wdOriginalDocumentFormat;

            // 如果为 true,则将文档传送给下一个收件人。
            // 如果没有为文档附加传送名单,则忽略此参数。
            Object RouteDocument = false;


            try
            {
                if (wDoc != null)
                {
                    wDoc.Close(ref DoNotSaveChanges, ref OriginalFormat, ref RouteDocument);
                }
                if (wApp != null)
                {
                    wApp.Quit(ref DoNotSaveChanges, ref OriginalFormat, ref RouteDocument);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void PopulateClientTemplate(KeyValuePair <string, string> templateNameAndfileSaveName)
        {
            toolStripStatusLabel1.Text = "Creating " + templateNameAndfileSaveName.Value;

            object oMissing           = Missing.Value;
            string currentDirectory   = Directory.GetCurrentDirectory();
            object oPathToTemplate    = currentDirectory + "\\" + templateNameAndfileSaveName.Key;
            string absolutePathToSave = Path.GetFullPath(FullPathToClientDirectory);

            if (!File.Exists(oPathToTemplate.ToString()))
            {
                MessageBox.Show($"Cannot find template: {templateNameAndfileSaveName.Key}.\nPlease fill out remaining templates manually.", "Error", MessageBoxButtons.OKCancel);
            }

            Word._Application wordApplication = new Word.Application();
            Word._Document    currentDocument = wordApplication.Documents.Add(ref oPathToTemplate, ref oMissing, ref oMissing, ref oMissing);
            wordApplication.Visible = false;

            ReplaceBookmarksWithFormTextIn(currentDocument);

            currentDocument.Repaginate();
            currentDocument.Fields.Update();
            currentDocument.SaveAs2(Path.Combine(absolutePathToSave, templateNameAndfileSaveName.Value));
            currentDocument.Close();
            wordApplication.Quit();
        }
Esempio n. 7
0
        /// <summary>
        /// 预览Word
        /// </summary>
        public string PreviewWord(string physicalPath, string url, string findIndex)
        {
            Microsoft.Office.Interop.Word._Application application = null;
            Microsoft.Office.Interop.Word._Document    doc         = null;
            application = new Microsoft.Office.Interop.Word.Application();
            object missing    = Type.Missing;
            object trueObject = true;

            application.Visible       = false;
            application.DisplayAlerts = WdAlertLevel.wdAlertsNone;
            doc = application.Documents.Open(physicalPath, missing, trueObject, missing, missing, missing,
                                             missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
            //Save Excelto Html
            object format     = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;
            string htmlName   = Path.GetFileNameWithoutExtension(physicalPath) + ".html";
            String outputFile = Path.GetDirectoryName(physicalPath) + "\\" + htmlName;
            string temp       = outputFile.Substring(0, outputFile.IndexOf(findIndex));

            temp       = temp + findIndex + "\\DKLManager\\ReadFiles" + outputFile.Substring(outputFile.LastIndexOf("\\"), outputFile.Length - outputFile.LastIndexOf("\\"));
            outputFile = temp;
            string strPath = Path.GetDirectoryName(outputFile);         //如果文件夹路径不存在就创建

            if (!Directory.Exists(strPath))
            {
                Directory.CreateDirectory(strPath);
            }
            doc.SaveAs(outputFile, format, missing, missing, missing,
                       missing, XlSaveAsAccessMode.xlNoChange, missing,
                       missing, missing, missing, missing);
            doc.Close();
            application.Quit();
            return(Path.GetDirectoryName(Server.UrlDecode(url)) + "\\" + htmlName);
        }
Esempio n. 8
0
 //---------------------------------------------------------------------
 private void Test2()
 {
     //<Snippet4>
     Word._Document doc = Application.Documents["NewDocument.docx"] as Word._Document;
     doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
     //</Snippet4>
 }
Esempio n. 9
0
 public void Dispose()
 {
     _document.Close(ref _falseObj, ref _missingObj, ref _missingObj);
     _application.Quit(ref _missingObj, ref _missingObj, ref _missingObj);
     _document    = null;
     _application = null;
 }
        /// <summary>
        /// this is the datasource file for the mail merge activity
        /// </summary>
        private void CreateMailMergeDataFile()
        {
            int iCount;

            Object oName   = _tempDataSourceFileName;
            Object oHeader = "Name, Address";

            _wrdDoc.MailMerge.CreateDataSource(ref oName, ref _oMissing,
                                               ref _oMissing, ref oHeader, ref _oMissing, ref _oMissing,
                                               ref _oMissing, ref _oMissing, ref _oMissing);

            // Open the file to insert data.
            Word._Document oDataDoc = _wrdApp.Documents.Open(ref oName, ref _oMissing,
                                                             ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing,
                                                             ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing,
                                                             ref _oMissing, ref _oMissing, ref _oMissing, ref _oMissing,
                                                             ref _oMissing /*, ref oMissing */);

            for (iCount = 1; iCount < _mailMergeData.RecipientCollection.Count; iCount++)
            {
                oDataDoc.Tables[1].Rows.Add(ref _oMissing);
            }
            // Fill in the data.
            for (int i = 0; i < _mailMergeData.RecipientCollection.Count; i++)
            {
                FillRow(oDataDoc, i + 2, _mailMergeData.RecipientCollection[i].Name, _mailMergeData.RecipientCollection[i].Address);
            }

            // Save and close the file.
            oDataDoc.Save();
            oDataDoc.Close(ref _oFalse, ref _oMissing, ref _oMissing);
        }
Esempio n. 11
0
        /// <summary>
        /// 给word文档添加页眉
        /// </summary>
        /// <param name="filePath">文件名</param>
        /// <returns></returns>
        public static bool AddPageHeaderFooterForWord(string filePath)
        {
            try
            {
                Object oMissing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();
                WordApp.Visible = true;
                object filename = filePath;
                Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing,
                                                                                         ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                                                         ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                ////添加页眉方法一:
                //WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
                //WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;
                //WordApp.ActiveWindow.ActivePane.Selection.InsertAfter( "**公司" );//页眉内容

                ////添加页眉方法二:
                if (WordApp.ActiveWindow.ActivePane.View.Type == WdViewType.wdNormalView ||
                    WordApp.ActiveWindow.ActivePane.View.Type == WdViewType.wdOutlineView)
                {
                    WordApp.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintView;
                }
                WordApp.ActiveWindow.View.SeekView            = WdSeekView.wdSeekCurrentPageHeader;
                WordApp.Selection.HeaderFooter.LinkToPrevious = false;
                //WordApp.Selection.HeaderFooter.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphRight;
                WordApp.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphDistribute;
                WordApp.Selection.HeaderFooter.Range.Text   = "                                             内部公开";
                WordApp.Selection.InlineShapes.AddPicture(@"C:\Users\Administrator\Desktop\2.jpg");

                // 去掉页眉的横线
                //WordApp.ActiveWindow.ActivePane.Selection.ParagraphFormat.Borders[WdBorderType.wdBorderBottom].LineStyle = WdLineStyle.wdLineStyleNone;
                //WordApp.ActiveWindow.ActivePane.Selection.Borders[WdBorderType.wdBorderBottom].Visible = false;

                //在页眉的图片后面追加几个字
                //WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("  文档页眉");


                WordApp.ActiveWindow.View.SeekView            = WdSeekView.wdSeekCurrentPageFooter;
                WordApp.Selection.HeaderFooter.LinkToPrevious = false;
                WordApp.Selection.HeaderFooter.Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
                WordApp.Selection.HeaderFooter.Range.Text = "页脚内容";
                //WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("页脚内容");

                //跳出页眉页脚设置
                WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;

                //保存
                WordDoc.Save();
                WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                return(false);
            }
        }
Esempio n. 12
0
        /// <summary>
        /// 预览Word
        /// </summary>
        public string PreviewWord(string physicalPath, string url)
        {
            Microsoft.Office.Interop.Word._Application application = null;
            Microsoft.Office.Interop.Word._Document    doc         = null;
            application = new Microsoft.Office.Interop.Word.Application();
            object missing    = Type.Missing;
            object trueObject = true;

            application.Visible       = false;
            application.DisplayAlerts = WdAlertLevel.wdAlertsNone;
            doc = application.Documents.Open(physicalPath, missing, trueObject, missing, missing, missing,
                                             missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
            //Save Excelto Html
            object format     = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;
            string htmlName   = Path.GetFileNameWithoutExtension(physicalPath) + ".html";
            String outputFile = Path.GetDirectoryName(physicalPath) + "\\" + htmlName;

            //doc.SaveAs2()
            doc.SaveAs(outputFile, format, missing, missing, missing,
                       missing, XlSaveAsAccessMode.xlNoChange, Type.Missing,
                       missing, missing, missing, missing);
            doc.Close();
            application.Quit();
            return(Path.GetDirectoryName(Server.UrlDecode(url)) + "\\" + htmlName);
        }
Esempio n. 13
0
 private void btnPrint_Click(object sender, EventArgs e)
 {
     // Считывает шаблон и сохраняет измененный в новом
     Word._Document oDoc = GetDoc(Environment.CurrentDirectory + "\\Трудовой договор.dotx");
     oDoc.SaveAs(FileName: Environment.CurrentDirectory + "\\Трудовой договор" + tbFam.Text + " " + tbName.Text + " " + tbOtch.Text + ".docx");
     oDoc.Close();
 }
Esempio n. 14
0
        public static void PrintToWord(IList outputs, string filename = "")
        {
            if (String.IsNullOrEmpty(filename))
            {
                filename = "result";
            }
            string path = $"{InvokeFolderBrowser()}\\{filename}.doc";

            Word._Application word_app = new Word.Application();
            Word._Document    word_doc = word_app.Documents.Add(ref missing, ref missing, ref missing, ref missing);

            foreach (var row in outputs)
            {
                Word.Paragraph para = word_doc.Paragraphs.Add(ref missing);
                para.Range.Text = row.ToString();
                para.Range.InsertParagraphAfter();
            }

            object filepath = path;

            word_doc.SaveAs(ref filepath, 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);

            object save_changes = false;

            word_doc.Close(ref save_changes, ref missing, ref missing);
            word_app.Quit(ref save_changes, ref missing, ref missing);
        }
Esempio n. 15
0
        public void CreateNewDoc(String path, AppVisibility visibility)
        {
            //создаем обьект приложения word
            _application = new Word.Application();
            // создаем путь к файлу
            Object templatePathObj = path;

            // если вылетим на этом этапе, приложение останется открытым
            try
            {
                _document = _application.Documents.Add(ref templatePathObj, ref _missingObj, ref _missingObj, ref _missingObj);
            }
            catch (Exception error)
            {
                _document.Close(ref _falseObj, ref _missingObj, ref _missingObj);
                _application.Quit(ref _missingObj, ref _missingObj, ref _missingObj);
                _document    = null;
                _application = null;
                throw error;
            }
            if (visibility == AppVisibility.Visible)
            {
                // делаем word видимым
                _application.Visible = true;
            }
            else
            {
                _application.Visible = false;
            }
        }
Esempio n. 16
0
        public static void ShowDocument(string path)
        {
            Word._Application wordApplication = null;
            Word._Document    wordDocument    = null;
            try
            {
                wordApplication         = new Word.Application();
                wordDocument            = wordApplication.Documents.Open(path);
                wordApplication.Visible = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);

                if (wordDocument != null)
                {
                    wordDocument.Close();
                }
                if (wordApplication != null)
                {
                    wordApplication.Quit();
                }
            }
            finally
            {
                if (wordDocument != null)
                {
                    wordDocument = null;
                }
                if (wordApplication != null)
                {
                    wordApplication = null;
                }
            }
        }
Esempio n. 17
0
        /// <summary>
        /// 动态生成Word文档并填充内容
        /// </summary>
        /// <param name="dir">文档目录</param>
        /// <param name="fileName">文档名</param>
        /// <returns>返回自定义信息</returns>
        public static bool CreateWordFile(string dir, string fileName)
        {
            try
            {
                Object oMissing = System.Reflection.Missing.Value;

                if (!Directory.Exists(dir))
                {
                    //创建文件所在目录
                    Directory.CreateDirectory(dir);
                }
                //创建Word文档(Microsoft.Office.Interop.Word)
                Microsoft.Office.Interop.Word._Application WordApp = new Application();
                WordApp.Visible = true;
                Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Add(
                    ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                //保存
                object filename = dir + fileName;
                WordDoc.SaveAs(ref filename, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                               ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                               ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
                WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                return(false);
            }
        }
Esempio n. 18
0
        /// <summary>
        /// 设置文档格式并添加内容
        /// </summary>
        /// <param name="filePath">文件名</param>
        /// <returns></returns>
        public static bool AddContent(string filePath)
        {
            try
            {
                Object oMissing = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Word._Application WordApp = new Application();
                WordApp.Visible = true;
                object filename = filePath;
                Microsoft.Office.Interop.Word._Document WordDoc = WordApp.Documents.Open(ref filename, ref oMissing,
                                                                                         ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                                                         ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                //设置居左
                WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;

                //设置文档的行间距
                WordApp.Selection.ParagraphFormat.LineSpacing = 15f;
                //插入段落
                //WordApp.Selection.TypeParagraph();
                Microsoft.Office.Interop.Word.Paragraph para;
                para = WordDoc.Content.Paragraphs.Add(ref oMissing);
                //正常格式
                para.Range.Text = "This is paragraph 1";
                //para.Range.Font.Bold = 2;
                //para.Range.Font.Color = WdColor.wdColorRed;
                //para.Range.Font.Italic = 2;
                para.Range.InsertParagraphAfter();

                para.Range.Text = "This is paragraph 2";
                para.Range.InsertParagraphAfter();

                //插入Hyperlink
                Microsoft.Office.Interop.Word.Selection mySelection = WordApp.ActiveWindow.Selection;
                mySelection.Start = 9999;
                mySelection.End   = 9999;
                Microsoft.Office.Interop.Word.Range myRange = mySelection.Range;

                Microsoft.Office.Interop.Word.Hyperlinks myLinks = WordDoc.Hyperlinks;
                object linkAddr = @"http://www.cnblogs.com/lantionzy";
                Microsoft.Office.Interop.Word.Hyperlink myLink = myLinks.Add(myRange, ref linkAddr,
                                                                             ref oMissing);
                WordApp.ActiveWindow.Selection.InsertAfter("\n");

                //落款
                WordDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();
                WordDoc.Paragraphs.Last.Alignment  = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;

                //保存
                WordDoc.Save();
                WordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                WordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                return(false);
            }
        }
Esempio n. 19
0
        public void ExportDotx(string dir, string text)
        {
            object template = dir + "\\exampleDotx.dotx";

            Word._Application word = new Word.Application()
            {
                Visible = true
            };
            Word._Document doc = word.Documents.Add(template);

            // Поиск закладки Name и вставка введенного текста
            String nameMark = "Name";

            Word.Bookmarks bookmarks = doc.Bookmarks;

            foreach (Word.Bookmark mark  in bookmarks)
            {
                if (mark.Name == nameMark)
                {
                    mark.Range.Text = text;
                }
            }

            doc.SaveAs(dir + "\\newTemplate.docx");
            doc.Close();
            word.Quit();
        }
Esempio n. 20
0
 /// <summary>
 /// Word转PDF
 /// </summary>
 /// <param name="WordFilePath">Word文件路径</param>
 /// <param name="PdfFilePath">PDF文件路径</param>
 public static void WordToPdf(string WordFilePath, string PdfFilePath)
 {
     Word._Application wordApp = null;
     Word._Document wordDoc = null;
     try
     {
         wordApp = new Word.Application() { Visible = false };
         wordDoc = wordApp.Documents.Open(WordFilePath);
         if (wordDoc == null)
         {
             throw new Exception("Failed to open the Word file");
         }
         wordDoc.ExportAsFixedFormat(PdfFilePath, Word.WdExportFormat.wdExportFormatPDF);
     }
     catch (Exception ex)
     {
         Log.WriteLog("", "", ex);
     }
     finally
     {
         if (wordDoc != null)
         {
             wordDoc.Close();
         }
         if (wordApp != null)
         {
             wordApp.Quit();
         }
     }
 }
        /// <summary>
        /// 化验单
        /// </summary>
        /// <param name="a"></param>
        private void PrintAssay(Assay a)
        {
            Log.Logs += $"正在打印化验单:{a.Name}\r";

            Word.Application thisApplication = new Word.ApplicationClass();
            wApp = thisApplication;
            string tmpDocFile   = AppDomain.CurrentDomain.BaseDirectory + folder + Properties.Settings.Default.PrintAssayDocx;
            object templatefile = tmpDocFile;

            wDoc = wApp.Documents.Add(ref templatefile, ref missing, ref missing, ref missing); //在现有进程内打开文档
            wDoc.Activate();                                                                    //当前文档置前

            //填充数据
            WordReplace(wApp, "#Name#", a.Name);
            if (a.Purchase != null)
            {
                WordReplace(wApp, "#CarnoOrStorename#", "车号:" + a.Purchase.CarNo);
            }
            if (a.Store != null)
            {
                WordReplace(wApp, "#CarnoOrStorename#", "油仓:" + a.Store.Name);
            }
            WordReplace(wApp, "#视密#", a.视密.ToString("0.000"));
            WordReplace(wApp, "#标密#", a.标密.ToString("0.000"));
            WordReplace(wApp, "#闭口闪点#", a.闭口闪点);
            WordReplace(wApp, "#Temperature#", a.Temperature.ToString("0.00"));
            WordReplace(wApp, "#OilTempTime#", a.OilTempTime.ToLongTimeString());
            WordReplace(wApp, "#SmellType#", strSmellType(a.SmellType));
            WordReplace(wApp, "#混水反应#", a.混水反应);
            WordReplace(wApp, "#十六烷值#", a.十六烷值);
            WordReplace(wApp, "#十六烷指数#", a.十六烷指数);
            WordReplace(wApp, "#初硫#", a.初硫.ToString("0.00"));
            WordReplace(wApp, "#Percentage10#", a.Percentage10.ToString("0.00"));
            WordReplace(wApp, "#Percentage50#", a.Percentage50.ToString("0.00"));
            WordReplace(wApp, "#Percentage90#", a.Percentage90.ToString("0.00"));
            WordReplace(wApp, "#回流#", a.回流.ToString("0.00"));
            WordReplace(wApp, "#干点#", a.干点.ToString("0.00"));
            WordReplace(wApp, "#蚀点#", a.蚀点.ToString("0.00"));
            WordReplace(wApp, "#凝点#", a.凝点.ToString("0.00"));
            WordReplace(wApp, "#含硫#", a.含硫.ToString("0.00"));
            WordReplace(wApp, "#CreatedBy#", a.CreatedBy);
            WordReplace(wApp, "#CreatedAt#", a.CreatedAt.ToString("yyyy-MM-dd HH:mm"));
            PrintTime(wApp);

            object background = false; //这个很重要,否则关闭的时候会提示请等待Word打印完毕后再退出,加上这个后可以使Word所有
            object filename   = AppDomain.CurrentDomain.BaseDirectory + createdfolder + a.Name + ".docx";

            wDoc.SaveAs(ref filename, 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);
            wDoc.PrintOut(ref background, 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, ref missing,
                          ref missing);
            object saveOption = Word.WdSaveOptions.wdSaveChanges;

            wDoc.Close(ref saveOption, ref missing, ref missing); //关闭当前文档,如果有多个模版文件进行操作,则执行完这一步后接着执行打开Word文档的方法即可
                        saveOption = Word.WdSaveOptions.wdDoNotSaveChanges;

            wApp.Quit(ref saveOption, ref missing, ref missing); //关闭Word进程
        }
Esempio n. 22
0
 public void Close()
 {
     try {
         HiddenDoc.Close(ref FalseObj, ref missing, ref missing);
     }
     catch {
     }
 }
Esempio n. 23
0
        public void convert(string src, string dst)
        {
            src = Path.GetFullPath(src);

            if (!File.Exists(src))
            {
                Console.Out.WriteLine("File does not exist: " + src);
                return;
            }

            dst = Path.GetFullPath(dst);

            object osrc = src;
            object odst = dst;

            object Background    = true;
            object PrintToFile   = true;
            object varFalseValue = false;
            object varTrueValue  = true;
            object FileFormat    = Word.WdSaveFormat.wdFormatPDF;
            object Encoding      = Office.MsoEncoding.msoEncodingUTF8;
            object varMissing    = Type.Missing;

            Word._Application app = null;
            Word._Document    doc = null;

            try
            {
                app = new Word.Application();

                doc = app.Documents.Open(ref osrc,
                                         ref varMissing, ref varTrueValue, ref varMissing, ref varMissing, ref varMissing,
                                         ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing,
                                         ref varMissing, ref varMissing, ref varMissing, ref varMissing, ref varMissing);

                doc.SaveAs(ref odst, ref FileFormat, ref varFalseValue,
                           ref varMissing, ref varFalseValue, ref varMissing, ref varFalseValue,
                           ref varTrueValue, ref varTrueValue, ref varTrueValue, ref varTrueValue,
                           ref Encoding, ref varFalseValue, ref varFalseValue, ref varMissing,
                           ref varMissing);
            }
            catch (Exception e)
            {
                Console.Out.WriteLine(e.Message);
            }
            finally
            {
                if (doc != null)
                {
                    doc.Close(ref varMissing, ref varMissing, ref varMissing);
                }

                if (app != null)
                {
                    app.Quit(ref varMissing, ref varMissing, ref varMissing);
                }
            }
        }
        /// <summary>
        /// A function that merges Microsoft Word Documents that uses a template specified by the user
        /// </summary>
        /// <param name="filesToMerge">An array of files that we want to merge</param>
        /// <param name="outputFilename">The filename of the merged document</param>
        /// <param name="insertPageBreaks">Set to true if you want to have page breaks inserted after each document</param>
        /// <param name="documentTemplate">The word document you want to use to serve as the template</param>
        private void Merge(string[] filesToMerge, string outputFilename, bool insertPageBreaks, string documentTemplate)
        {
            object defaultTemplate = documentTemplate;
            object missing         = System.Type.Missing;
            object pageBreak       = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;
            object outputFile      = outputFilename;

            // Create  a new Word application
            Microsoft.Office.Interop.Word._Application wordApplication = new Microsoft.Office.Interop.Word.Application();
            if (filesToMerge.Count() == 1)
            {
                pageBreak = false;
            }
            try
            {
                // Create a new file based on our template
                Microsoft.Office.Interop.Word._Document wordDocument = wordApplication.Documents.Add(ref defaultTemplate, ref missing, ref missing, ref missing);

                // Make a Word selection object.
                Microsoft.Office.Interop.Word.Selection selection = wordApplication.Selection;

                int index = 0;

                // Loop thru each of the Word documents
                foreach (string file in filesToMerge)
                {
                    // Insert the files to our template
                    selection.InsertFile(file, ref missing, ref missing, ref missing, ref missing);

                    //Do we want page breaks added after each documents?
                    if (insertPageBreaks && index != filesToMerge.Count() - 1)
                    {
                        selection.InsertBreak(ref pageBreak);
                    }

                    index++;
                }

                // Save the document to it's output file.
                wordDocument.SaveAs(ref outputFile, 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);

                // Clean up!
                wordDocument.Close(ref missing, ref missing, ref missing);
                wordDocument = null;
            }
            catch (Exception ex)
            {
                //I didn't include a default error handler so i'm just throwing the error
                throw ex;
            }
            finally
            {
                // Finally, Close our Word application
                wordApplication.Quit(ref missing, ref missing, ref missing);
            }
        }
        /// <summary>
        /// 陆上装车单
        /// </summary>
        /// <param name="order">model</param>
        private void PrintLandLoad(Order order)
        {
            Log.Logs += $"正在打印LoadOil:{order.Name}\r";

            Word.Application thisApplication = new Word.ApplicationClass();
            wApp = thisApplication;
            string tmpDocFile   = AppDomain.CurrentDomain.BaseDirectory + folder + Properties.Settings.Default.PrintLandLoadDocx;
            object templatefile = tmpDocFile;

            wDoc = wApp.Documents.Add(ref templatefile, ref missing, ref missing, ref missing); //在现有进程内打开文档
            wDoc.Activate();                                                                    //当前文档置前

            decimal DiffWeightToLitre = order.DiffWeight / (decimal)order.Density * 1000;
            decimal OilCountTon       = order.OilCountLitre * (decimal)order.Density / 1000;
            decimal DiffPondLitre     = order.OilCountLitre - DiffWeightToLitre;

            //填充数据
            WordReplace(wApp, "#Name#", order.Name);
            WordReplace(wApp, "#ClientName#", order.Client.CarNo);
            WordReplace(wApp, "#CompanyName#", order.Client.Company?.Name);
            WordReplace(wApp, "#StoreName#", order.Store.Name);
            WordReplace(wApp, "#DiffWeight#", order.DiffWeight.ToString("0.0"));
            WordReplace(wApp, "#Count#", (order.Count * 1000).ToString("0.0"));
            WordReplace(wApp, "#DiffOrder#", (order.DiffWeight - order.Count * 1000).ToString("0.0"));
            WordReplace(wApp, "#Price#", order.IsPrintPrice? order.Price.ToString() : "0.00");
            WordReplace(wApp, "#TotalMoney#", order.TotalMoney.ToString());
            WordReplace(wApp, "#OilCount#", order.OilCountLitre.ToString());
            WordReplace(wApp, "#OilCountTon#", OilCountTon.ToString("0.0"));
            WordReplace(wApp, "#DiffWeight#", (order.OilCarWeight - order.EmptyCarWeight).ToString("0.0"));
            WordReplace(wApp, "#DiffWeightTon#", ((order.OilCarWeight - order.EmptyCarWeight) / 1000).ToString("0.0"));
            WordReplace(wApp, "#DiffWeightToLitre#", DiffWeightToLitre.ToString("0.00"));
            WordReplace(wApp, "#DiffPondLitre#", DiffPondLitre.ToString("0.0"));
            WordReplace(wApp, "#DiffPondTon#", (DiffPondLitre * (decimal)order.Density / 1000).ToString("0.0"));
            WordReplace(wApp, "#Instrument_bf#", (order.Instrument1 - order.OilCountLitre).ToString());
            WordReplace(wApp, "#Instrument_af#", order.Instrument1.ToString());
            WordReplace(wApp, "#Density#", order.Density.ToString("0.000"));
            WordReplace(wApp, "#OilTemperature#", order.OilTemperature.ToString());
            WordReplace(wApp, "#Worker#", order.Worker);
            WordReplace(wApp, "#LastUpdatedAt#", order.LastUpdatedAt.ToString());
            WordReplace(wApp, "#Salesman#", order.Salesman);
            PrintTime(wApp);

            object background = false; //这个很重要,否则关闭的时候会提示请等待Word打印完毕后再退出,加上这个后可以使Word所有
            object filename   = AppDomain.CurrentDomain.BaseDirectory + createdfolder + order.Name + ".docx";

            wDoc.SaveAs(ref filename, 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);
            wDoc.PrintOut(ref background, 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, ref missing,
                          ref missing);
            object saveOption = Word.WdSaveOptions.wdSaveChanges;

            wDoc.Close(ref saveOption, ref missing, ref missing); //关闭当前文档,如果有多个模版文件进行操作,则执行完这一步后接着执行打开Word文档的方法即可
                        saveOption = Word.WdSaveOptions.wdDoNotSaveChanges;

            wApp.Quit(ref saveOption, ref missing, ref missing); //关闭Word进程
        }
Esempio n. 26
0
        private void button1_Click(object sender, EventArgs e)
        {
            oWord = new Word.Application();
            Word._Document oDoc = GetDoc(@"C:\Users\boris\Desktop\Folderfortricks\template3.dotx");

            oDoc.SaveAs(FileName: pathtofile);
            //oWord.Visible = true;
            oDoc.Close();
        }
Esempio n. 27
0
        public void Dispose()
        {
            wrdDoc.Close(ref oFalse, ref oMissing, ref oMissing);
            // Release References.
            wrdDoc = null;
            wrdApp = null;

            System.IO.File.Delete(tempFileRoute);
        }
Esempio n. 28
0
        /// <summary>
        /// 根据输入的链接地址,下载网页源码,并生成word文档
        /// </summary>
        /// <param name="URL">链接地址</param>
        /// <returns>返回网页源码</returns>
        public void makeWord()
        {
            object missing   = System.Reflection.Missing.Value;
            object readOnly  = true;
            object isVisible = false;

            object format = Word.WdSaveFormat.wdFormatDocument;

            Word._Application oWordApp = new Word.Application();
            oWordApp.Visible = false;

            int  intExist = 0, intSuccess = 0;
            bool isAccess = false;

            for (int i = 0; i < listWord.Count; i++)
            {
                GC.Collect();

                if (File.Exists(listWord[i].pFilePath))
                {
                    intExist++; continue;
                }

                DMS.SaveWebPage.SaveOaWebPageToMHTFile(listWord[i].URL, listWord[i].tFilePath);

                object file1 = listWord[i].tFilePath;
                object file2 = listWord[i].pFilePath;

                Word._Document oWordDoc = oWordApp.Documents.Open(ref file1, ref format, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);
                oWordDoc.SaveAs(ref file2, ref format, 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);
                //oWordDoc.SaveAs2(ref file2, ref format, 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);

                oWordDoc.Close(ref missing, ref missing, ref missing);
                oWordDoc = null;
                if (listWord[i].AddRecord)
                {
                    cAccess.add(listWord[i].DocTitle, listWord[i].URL, listWord[i].pFilePath, listWord[i].type, listWord[i].rlDate, listWord[i].rlUnit, listWord[i].Note);
                    isAccess = true;
                }
                intSuccess++;
            }
            if (isAccess)
            {
                cAccess.DtAdapter.Update(cAccess.basicDt);
            }

            oWordApp.Quit(ref missing, ref missing, ref missing);
            oWordApp = null;

            if (listWord.Count > 1)
            {
                MessageBox.Show("批量下载完成!共选择了" + listWord.Count + "个。成功下载" + intSuccess + "个,有" + intExist + "个文档在此之前已下载,有" + (listWord.Count - intSuccess - intExist) + "个下载失败");
            }
            //else if (listWord.Count == 1)
            //    MessageBox.Show("添加成功");
            frmMain.fm.initialize();
        }
        private void PrintUnload(Purchase p)
        {
            Log.Logs += $"正在打印陆上卸油单:{p.Name}\r";

            Word.Application thisApplication = new Word.ApplicationClass();
            wApp = thisApplication;
            string tmpDocFile   = AppDomain.CurrentDomain.BaseDirectory + folder + Properties.Settings.Default.PrintUnloadDocx;
            object templatefile = tmpDocFile;

            wDoc = wApp.Documents.Add(ref templatefile, ref missing, ref missing, ref missing); //在现有进程内打开文档
            wDoc.Activate();                                                                    //当前文档置前

            //填充数据

            WordReplace(wApp, "#Name#", p.Name);
            WordReplace(wApp, "#CarNo#", p.CarNo);
            WordReplace(wApp, "#ProductName#", p.Product?.Name);
            WordReplace(wApp, "#Count#", p.Count.ToString());
            WordReplace(wApp, "#OilCount#", p.OilCount.ToString("0.00"));
            WordReplace(wApp, "#Density#", p.Density.ToString("0.000"));
            WordReplace(wApp, "#ScaleWithCar#", p.ScaleWithCar.ToString());
            WordReplace(wApp, "#Scale#", p.Scale.ToString());

            string strToStore = "";

            foreach (var st in p.ToStoresList)
            {
                strToStore += "\r";
                strToStore += "卸入仓:" + st.Name + "\r";
                strToStore += "卸油前表数:" + st.InstrumentBf + "\r";
                strToStore += "卸油后表数:" + st.InstrumentAf + "\r";
                strToStore += "卸油数量:" + st.Count + "升\r";
            }
            WordReplace(wApp, "#ToStores#", strToStore);

            WordReplace(wApp, "#DiffLitre#", p.DiffLitre.ToString("0.00"));
            WordReplace(wApp, "#DiffTon#", p.DiffTon.ToString("0.00"));
            WordReplace(wApp, "#Worker#", p.Worker);
            WordReplace(wApp, "#StartTime#", p.StartTime.HasValue ? DateTime.Parse(p.StartTime.ToString()).ToString("yyyy-MM-dd HH:mm") : "");
            PrintTime(wApp);

            object background = false; //这个很重要,否则关闭的时候会提示请等待Word打印完毕后再退出,加上这个后可以使Word所有
            object filename   = AppDomain.CurrentDomain.BaseDirectory + createdfolder + p.Name + ".docx";

            wDoc.SaveAs(ref filename, 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);
            wDoc.PrintOut(ref background, 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, ref missing,
                          ref missing);
            object saveOption = Word.WdSaveOptions.wdSaveChanges;

            wDoc.Close(ref saveOption, ref missing, ref missing); //关闭当前文档,如果有多个模版文件进行操作,则执行完这一步后接着执行打开Word文档的方法即可
                        saveOption = Word.WdSaveOptions.wdDoNotSaveChanges;

            wApp.Quit(ref saveOption, ref missing, ref missing); //关闭Word进程
        }
Esempio n. 30
0
        private static void ComputeStatistics()
        {
            int pagecount = 0;
            int wordcount = 0;

            object fileName  = Filename;
            object readOnly  = false;
            object isVisible = false;
            object objDNS    = Word.WdSaveOptions.wdPromptToSaveChanges;
            object missing   = System.Reflection.Missing.Value;

            Word._Application WordApp = new Word.ApplicationClass();

            Word._Document aDoc = null;

            try
            {
                aDoc = WordApp.Documents.Open
                       (
                    ref fileName, ref missing, ref readOnly,
                    ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref isVisible,
                    ref missing, ref missing, ref missing,
                    ref missing
                       );

                Word.WdStatistic pagestat = Word.WdStatistic.wdStatisticPages;
                Word.WdStatistic wordstat = Word.WdStatistic.wdStatisticWords;

                pagecount = aDoc.ComputeStatistics(pagestat, ref missing);
                wordcount = aDoc.ComputeStatistics(wordstat, ref missing);
            }
            catch (Exception ex)
            {
            }
            finally
            {
                if (aDoc != null)
                {
                    aDoc.Close(ref objDNS, ref missing, ref missing);
                    Marshal.ReleaseComObject(aDoc);
                    aDoc = null;
                }
                if (WordApp != null)
                {
                    WordApp.Quit(ref objDNS, ref missing, ref missing);
                    Marshal.ReleaseComObject(WordApp);
                    WordApp = null;
                }
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            TotalPages = pagecount;
            NoOfWords  = wordcount;
        }
Esempio n. 31
0
        private void CreateWordDocument()
        {
            //создаем обьект приложения word
            m_app = new Microsoft.Office.Interop.Word.Application();
            // создаем путь к файлу
            Object templatePathObj = System.IO.Path.GetTempFileName();

            // если вылетим не этом этапе, приложение останется открытым
            try
            {
                m_doc = m_app.Documents.Add(ref templatePathObj, ref missingObj, ref missingObj, ref missingObj);
            }
            catch (Exception error)
            {
                m_doc.Close(ref falseObj, ref missingObj, ref missingObj);
                m_app.Quit(ref missingObj, ref missingObj, ref missingObj);
                m_doc = null;
                m_app = null;
                throw error;
            }
            //m_app.Visible = true;
        }