标签: office-interop

C# 跳过/取消保存打开的 Word 文档

我使用以下方法在 FormLoad 上动态打开/创建了一个新的 Word 文档:

  • 使用 Word = Microsoft.Office.Interop.Word;
  • oWord = new Word.Application();
  • oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

我有“保存按钮”可以使用以下方法保存所述文档:

  • oDoc.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 o缺失);

然后我添加了用于在 FormClosed 上关闭文档的语法:

  • oDoc.Close(ref oMissing, ref oMissing, ref oMissing);

场景:我运行了我的程序,然后关闭/退出。突然弹出文档的“另存为”对话框。我意识到我没有保存文档,因为保存过程在“保存按钮”中。

如何转义保存文档或自动选择“取消”进行保存?有帮助的人吗?

c# office-interop winforms

0
推荐指数
1
解决办法
1048
查看次数

在C#中使用Microsoft Office Interop单词的文档中的不同首页

如何使用Microsoft.office.interop.word在文档中创建其他首页标题和页脚。

我尝试了以下代码,但仅在第一页中,页眉和页脚即将到来。我想用另一种方式(第一页不应有页眉和页脚)。谁能帮帮我吗 ?我尝试了很多。

 Microsoft.Office.Interop.Word.Application w = new icrosoft.Office.Interop.Word.Application();
 Microsoft.Office.Interop.Word.Document doc;
 w.ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = -1;
 doc.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekCurrentPageHeader;
 doc.ActiveWindow.Selection.TypeText("HEader Text");   
Run Code Online (Sandbox Code Playgroud)

c# ms-office office-interop winforms

0
推荐指数
1
解决办法
3539
查看次数

单词互操作,表边框

我会尝试说出我想要的东西:我创建一个单词doc,并添加一个表,很好,但表的边框是透明的,我不能使用它,我需要在doc写入保存为PDF.

我有一个很好的课程控制单词,但桌子我失去了理智,我没有解决问题.

我使用winform和.net 3.5

    // atributos - atributes 
    public static object missing = System.Reflection.Missing.Value; // Valores defauls que não precisa alterar
    public static Word.Application w_app; // aplicação do word
    public static Word.Document w_doc; // documento do word

    // metodos - methods
    public void criar_novo_arquivo_word() // create a new file word doc
    {
        Word.Application app = new Word.Application();
        w_app = app;
        w_doc = app.Documents.Add(missing, missing, missing, missing);
        w_app.Visible = false;
    }

    public void visualizar_word(bool opcao) // set visible
    {
        w_app.Visible = …
Run Code Online (Sandbox Code Playgroud)

c# interop ms-word office-interop winforms

0
推荐指数
1
解决办法
1698
查看次数

如何确定在c#中使用word office interop打开的活动文档的字体颜色?

我有这个代码

Word.Application WordApp = new Word.Application();
                WordApp.Visible = true;
                aDoc = WordApp.Documents.Open(fileName, ReadOnly: readOnly, Visible: isVisible);
                aDoc.Activate();
Run Code Online (Sandbox Code Playgroud)

我想确定打开的文档中使用的字体颜色,有办法做到这一点吗?谢谢你!

c# office-interop

0
推荐指数
1
解决办法
2415
查看次数

从c#应用程序访问Outlook的问题

我正在编写一个控制台应用程序,它检查Outlook邮箱的内容,以便将特定电子邮件的内容读入数据库.

无论Outlook是否开放,此应用程序在Visual Studio中都能正常运行.

如果我构建应用程序并从exe运行它只能在Outlook打开时工作,这不是一个真正的问题.

但是,我需要从计划任务运行它,因为它必须每隔几分钟运行一次.这根本不起作用.

我正在使用以下代码:

System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName("OUTLOOK");

int collCount = processes.Length;

if (collCount != 0)
{
    OutlookApp = Marshal.GetActiveObject("Outlook.Application") as Application;  
}
else
{
    OutlookApp = new Application();
} 
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是:

System.Runtime.InteropServices.COMException(0x800401E3)::操作不可用(0x800401E3(MK_E_UNAVAILABLE)从HRESULT异常)
在System.Runtime.InteropServices在System.Runtime.InteropServices.Marshal.GetActiveObject(GUID&rclsid,IntPtr的保留,对象&ppunk). ImportCruiseEmails.Program.Main()中的Marshal.GetActiveObject(String progID)

在线上 :

Marshal.GetActiveObject("Outlook.Application") as Application;
Run Code Online (Sandbox Code Playgroud)

Outlook和控制台应用程序都在我的用户帐户下运行,该帐户具有管理员权限.整个下午,我一直把头发拉出来.任何人都可以对此有所了解吗?干杯!

c# outlook marshalling console-application office-interop

0
推荐指数
1
解决办法
1136
查看次数

DateTime.Now.ToString("MM/DD/YYYY")包含不正确的月份

所以我一直在添加一个DateTime.Now.ToString("MM/DD/YYYY")List(以及一堆其他数据),后来将这些列表写入Excel工作簿中的各个行.

这一切都很有效(这是我经常做的事情),除了月份.我尝试过三次出口,每次我得到一个不同的月份; 第一次56/26-17,第二次2017年2月26日,第三次14/26/2017 ....

c# excel datetime date office-interop

-1
推荐指数
1
解决办法
1449
查看次数