關於word的問題!!!高分求解!!!


1、請問如何用C#讀出word中的某一行?
2、如果word中有表格,如何讀出某一個單元格中的內容?(考慮合並過的單元格)

分不夠可以再加,只要問題解決,分的問題好商量!:)

5 个解决方案

#1


To PerfectCK:

利用Automation,可以完成對Word文檔的各種復雜操作,包括文檔的生成、修改、統計字數等等等等。在MSDN里面可以參考“Working with Microsoft Word Objects”一文。

對於你提出的問題,我寫了下面一段例子代碼僅供參考:

private void menuItem2_Click(object sender, System.EventArgs e)
{
Object Nothing=System.Reflection.Missing.Value;
object filename=@"c:\test.doc";

Word.Application wordApp=new Word.ApplicationClass();
Word.Document wordDoc=wordApp.Documents.Open(ref filename,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);

this.textBox1.Text+="\r\n"+wordDoc.Paragraphs.Last.Range.Text.ToString();
this.textBox1.Text+="\r\n"+wordDoc.Tables.Item(1).Cell(1,1).Range.Text.ToString();

wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
}

private void menuItem3_Click(object sender, System.EventArgs e)
{
Object Nothing=System.Reflection.Missing.Value;
object filename=@"c:\test.doc";

Word.Application wordApp=new Word.ApplicationClass();
Word.Document wordDoc=wordApp.Documents.Add(ref Nothing,ref Nothing,ref Nothing,ref Nothing);

Word.Table table=wordDoc.Tables.Add(wordApp.Selection.Range,2,3,ref Nothing,ref Nothing);
table.Cell(1,1).Range.Text="1892730987098";
wordDoc.Paragraphs.Last.Range.Text="Hello";

wordDoc.SaveAs(ref filename,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,ref Nothing);
wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
}

在這段例子里面,menuItem3_Click()函數新建了一個Word文檔,並在里面插入了一個表格和一段文字。表格的大小是兩行三列,最左上的cell里面的內容是"1892730987098",后面一段文字的內容是"Hello"。其大致如下:

+---------------+--------------+--------------+
| 1892730987098 |              |              |
+---------------+--------------+--------------+
|               |              |              |
+---------------+--------------+--------------+
Hello

上面的例子代碼中,menuItem2_Click()完成的工作就是打開上面創建的Word文檔,並讀取表格的第一個cell的內容以及下面一段文字的內容,然后將其顯示在this.textBox1中。

您可以試試看上面這段例子代碼,運行前需要在項目的Reference里面添加Microsoft Word 10.0 Object Library。


Hogwarts - S(u)ddenly dis@ppeared...

本貼子以“現狀”提供且沒有任何擔保,同時也沒有授予任何權利。具體事項可參見使用條款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。  
為了為您創建更好的討論環境,請參加我們的用戶滿意度調查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。  

#2


string xx,yy;
Word.ApplicationClass oWord = new Word.ApplicationClass();
Word.Document oDoc;
Word.Range oRange;
Word.Table otable;
Word.Selection  oselection;
object a = Missing.Value;
object b = Missing.Value;
object filename=@"c:\test.doc";
oDoc = oWord.Documents.Open(ref filename,ref a,ref a,ref a,ref 
//or oDoc = oWord.Documents.Add(ref a,ref a,ref a,ref a);
a,ref a,ref a,ref a,ref a,ref a,ref a,ref a);  
oWord.Visible = true;
oDoc = oWord.ActiveDocument
oRange = oDoc.Range(ref a,ref b);
oRange.Rows.Count = 9;
oRange.Select;
xx =oRange.Text;  
otable = oDoc.Tables.Item(1); 
otable.Select;
yy = otable.Cell(0,1).Range.Text;  
...

#3


同意樓上的說法
對WORD的操作,VBA很好的
你可以通在WORD 中錄制宏,查看 用VBA編寫的代碼
然后參考樓上的方式,轉換為C#。

#4


我是指Hogwarts([微軟]S(u)ddenly dis@ppeared...)發的帖子說的

#5


up!gz!

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com