doc文件有固定格式,其中有些内容是根据变量值改变输入的,
比方说 doc文件可能是xxx:
   需要xx个
这样的形式,xx在程序中获得
现在有点疑惑的是如何写到doc中,字体 。大小均有要求
请问如何实现?

解决方案 »

  1.   

    如果直接写不行,可以试试模板方式。
    用程序打开一个doc文件,写入内容另存为一个文件。
      

  2.   

    给你个案例看看。http://www.shilidata.com/showforum-44.aspx Office开发专题
      

  3.   

    链接打不开了这要钱的控件啊我的意思是没有直接写的方法吗?
    其实我是不知道怎么构建一个doc文件,然后设置字体格式颜色什么的,再进行写入
      

  4.   

    需要添加引用
    Microsoft Word 11.0 Object Library
     private void button1_Click(object sender, EventArgs e)
            {            //将内容输出到word文档中
                object oMissing = System.Reflection.Missing.Value;
                //创建一个Word应用程序实例  
                Microsoft.Office.Interop.Word._Application oWord = new Microsoft.Office.Interop.Word.Application();
                //设置为不可见  
                oWord.Visible = false;
                //模板文件地址,这里假设在X盘根目录  
                object oTemplate = "L://person2.dotx";//2007版本
                //以模板为基础生成文档  
                Microsoft.Office.Interop.Word._Document oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);
                //声明书签数组  
                object[] oBookMark = new object[5];
                //赋值书签名  
                oBookMark[0] = "beizhu";
                oBookMark[1] = "name";
                oBookMark[2] = "sex";
                oBookMark[3] = "birthday";
                oBookMark[4] = "hometown";            //赋值任意数据到书签的位置  
                oDoc.Books.get_Item(ref oBookMark[0]).Range.Text = "使用模板实现Word生成";
                oDoc.Books.get_Item(ref oBookMark[1]).Range.Text = "李四";
                oDoc.Books.get_Item(ref oBookMark[2]).Range.Text = "女";
                oDoc.Books.get_Item(ref oBookMark[3]).Range.Text = "1987.06.07";
                oDoc.Books.get_Item(ref oBookMark[4]).Range.Text = "贺州";            //弹出保存文件对话框,保存生成的Word  
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.Filter = "Word Document(*.doc)|*.doc";
                sfd.DefaultExt = "Word Document(*.doc)|*.doc";
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    object filename = sfd.FileName;                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);
                    oDoc.Close(ref oMissing, ref oMissing, ref oMissing);
                    //关闭word  
                    oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
                }         }
      

  5.   

    这个,还有我在网上也找到其他的例子,大致都是这种方式实现但是Microsoft.Office.Interop.Word._Application oWord = new Microsoft.Office.Interop.Word.Application();
    这句异常,按照网上的解决办法都试过,还是没法解决
    杯具啊
      

  6.   


    不可能啊LZ 你要在引用中添加需要添加引用
    Microsoft Word 11.0 Object Library组件啊
    我运行正常 还有可能就是LZ你的版本过低
      

  7.   

    组件添加了的,就是那个异常,网上很多人都有那个异常,我按照他们的解决办法还是不行的像这个帖子,错误跟我是一样的
    http://topic.csdn.net/u/20100707/15/a4d3e51c-6f44-42ec-b20b-2988be8b9d21.html各种解决办法都不行