none
HELP!!C#winfrom写入文件操作!! RRS feed

  • 问题


  •             FileStream fs1 = new FileStream(Application.StartupPath + "\\试卷.docx", FileMode.Create, FileAccess.Write);//创建文件  
                StreamWriter sw = new StreamWriter(fs1);
                sw.WriteLine(textBox2.Text);//写入值  
                sw.Close();  
                fs1.Close(); 

     

    在手动打开时出错,提示文件已损坏,怎么回事?要怎么修改??才可以正确!!

    2011年4月8日 14:40

答案

  • 在向Word文档中写入文本时,仍然需要使用上节介绍的Microsoft Word X Object Library COM组件,写入文本的方法主要为设置MSWord.Document.Paragraphs.Last.Range.Text属性

    引用一下命名空间

    using Words = Microsoft.Office.Interop.Word;
             using System.Reflection;

       object path;
                string strContent;
                Words.Application wordApp;//word应用程序变量
                Words.Document wordDoc;//word文档变量

                path = Application.StartupPath + "试卷5.docx";
                wordApp = new Words.ApplicationClass();//Init
                //由于使用的是COM库,因此有许多变量需要用Missing.Value代替
                object nothing = Missing.Value;
                wordDoc = wordApp.Documents.Add(ref nothing, ref nothing, ref nothing, ref nothing);
                strContent = this.textBox1.Text;
                wordDoc.Paragraphs.Last.Range.Text = strContent;
                //WdSaveFormat为Word 2007文档的保存格式
                object forma = Words.WdSaveFormat.wdFormatDocumentDefault;
                //将wordDoc文档对象的内容保存为DOCX文档
                wordDoc.SaveAs(ref path, ref forma, 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);

     

    PS:新手一名

     

    2011年4月8日 16:25

全部回复

  • 在向Word文档中写入文本时,仍然需要使用上节介绍的Microsoft Word X Object Library COM组件,写入文本的方法主要为设置MSWord.Document.Paragraphs.Last.Range.Text属性

    引用一下命名空间

    using Words = Microsoft.Office.Interop.Word;
             using System.Reflection;

       object path;
                string strContent;
                Words.Application wordApp;//word应用程序变量
                Words.Document wordDoc;//word文档变量

                path = Application.StartupPath + "试卷5.docx";
                wordApp = new Words.ApplicationClass();//Init
                //由于使用的是COM库,因此有许多变量需要用Missing.Value代替
                object nothing = Missing.Value;
                wordDoc = wordApp.Documents.Add(ref nothing, ref nothing, ref nothing, ref nothing);
                strContent = this.textBox1.Text;
                wordDoc.Paragraphs.Last.Range.Text = strContent;
                //WdSaveFormat为Word 2007文档的保存格式
                object forma = Words.WdSaveFormat.wdFormatDocumentDefault;
                //将wordDoc文档对象的内容保存为DOCX文档
                wordDoc.SaveAs(ref path, ref forma, 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);

     

    PS:新手一名

     

    2011年4月8日 16:25
  • 仍然需要使用上节介绍......???这是什么???
    2011年4月9日 9:55
  • 不要用filestream直接读写,改用BinaryReader和BinaryWriter读写

    br = new BinaryReader((Stream)fs1);
    bytContent = br.ReadBytes((Int32)fs1 .Length);


    戒骄戒躁,潜心修行.
    2011年4月10日 6:28
  • 因为docx是一个压缩成一个zip文件~如果你改成 ”试卷。doc“ 就直接可以写入了

    如果你是随便玩玩~就直接写入吧

    如果文件比较大,还是用
    BinaryReader和BinaryWriter 并限制每次写入文件的大小~

    2011年4月10日 7:56
  • word文件是专有的格式,不是简单的文本
    http://feiyun0112.cnblogs.com/
    2011年4月11日 1:49
    版主