繁体   English   中英

System.NullReferenceException: '对象引用未设置为 object 的实例。 在处理通过 c# 编辑的 word 文档时

[英]System.NullReferenceException: 'Object reference not set to an instance of an object. while working with a word document to edit via c#

我试图在 c# 中做一个 Word 文档编辑器,其主要思想是更改 Word 文档中的某些字段。 例如,将单词name替换为我在 windows 表单字段中键入的实际名称。 将其视为证书生成器。 我只需要更改日期和名称。

但是我一直收到一个错误,其中 Object 引用未设置为 object 的实例。

我得到的错误是Word.Range nom = ObjDoc.Bookmarks.get_Item(ref name1).Range;

这是完整的代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;

  namespace WindowsFormsApp5
  {
   public partial class Form1 : Form
   {
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        object ObjMiss = System.Reflection.Missing.Value;
        Word.Application ObjWord = new Word.Application();
        string route = Application.StartupPath + @"C:\document.docx";
        object parametro = route;
        object name1 = "name";
        object telephone1 = "telephone";

        
        
        
        Word.Document ObjDoc = ObjWord.Documents.Open(parametro , ObjMiss);
        
        Word.Range nom = ObjDoc.Bookmarks.get_Item(ref name1).Range;
        nam.Text = textBox1.Text;
        Word.Range tel = ObjDoc.Bookmarks.get_Item(ref telephone1).Range;
        tel.Text = textBox2.Text;
        object rango1 = nam;
         object range2 = tel;
         ObjDoc.Bookmarks.Add("name", ref range1);
         ObjDoc.Bookmarks.Add("telephone", ref range2);
        ObjWord.Visible = true;

    }
  }
}

我完全确定我有正确的 word 文档路径,我还在我想要替换单词的地方插入了必要的书签。

你确定吗

Application.StartupPath + @"C:\document.docx";

产生预期的路径? 会是这样的

"C:\path\to\application\C:\document.docx"

据我所知,“ : ”甚至不是文件夹名称的可接受字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM