c#怎样读取.doc .xls文件 怎样才能从word 和 excel 中读取文件内容。怎么设置编码。我读取的都是乱码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你怎么读的参考下http://www.cnblogs.com/emanlee/archive/2007/05/31/766520.aspxhttp://book.chinaz.com/net/asp.net1/dot32.htm 要用微软专门提供的类this.openFileDialog1.Filter="excel文件(*.xls)|*.xls"; this.openFileDialog1.Title="打开excel文件"; this.openFileDialog1.ShowDialog(); path1=this.openFileDialog1.FileName; //设置空值 object objMissing=System.Reflection.Missing.Value; //打开excel文件 my=new Excel.ApplicationClass(); my.Visible=true; //打开工作簿 Excel.Workbook mybook=my.Workbooks.Open(path1.Trim(),objMissing,objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing, objMissing); Excel.Worksheet mysheet=(Excel.Worksheet)mybook.Worksheets.get_Item(1); //设置第10行为红色 mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Select(); mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Interior.ColorIndex=3; 我现在想从word读,可是中文读出来都是乱码。读.txt的文件就没事。 看看编码方式,如果方法正确就是编码方式的问题了,看看你word的编码方式,改下,或许就不是乱码了 word 用什么样的编码方式呢。 你估计是用FileStream+StreamReader来读的吧这样是不能读取.doc文档的只能用2楼的那种读取EXCEL的方法(读取WORD也是类似的Word.Application) 在WEB里可以这样读word..我最近也在做这个..你试试..添加以下对word等的引用..读的时候最好进程里的word进程都关闭,要不会提示说什么WORD已被锁定.. public static string Doc2Text(string docFileName) { try { //实例化COM Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass(); object fileobj = docFileName; object nullobj = System.Reflection.Missing.Value; //打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了) Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref fileobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj ); //取得doc文件中的文本 string outText = doc.Content.Text; //关闭文件 doc.Close(ref nullobj, ref nullobj, ref nullobj); //关闭COM wordApp.Quit(ref nullobj, ref nullobj, ref nullobj); //返回 return outText; } catch { return null; } } 需要引用这个microsoft.office.interop.word.dll Could not load type问题,请高手指教 32位的.NET应用程序如何在64位的操作系统下读取注册表 动态生成picturebox的问题 画出这样的线条 有图 怎么样向listview中动态添加节点数据?(急,在线等!!!!!!!!!!) 为什么我的方法和委托不匹配…… C#程序集的问题 菜鸟的问题:如何让 开始->文档 中不显示最近打开的文档列表? 高手进来看一下,使用内存的问题,,, 怎么在c#中来调用MS speech engine? C#中换行符是什么? 问SqlParameter的用法和判断空值的问题
http://www.cnblogs.com/emanlee/archive/2007/05/31/766520.aspx
http://book.chinaz.com/net/asp.net1/dot32.htm
this.openFileDialog1.Title="打开excel文件";
this.openFileDialog1.ShowDialog();
path1=this.openFileDialog1.FileName;
//设置空值
object objMissing=System.Reflection.Missing.Value;
//打开excel文件
my=new Excel.ApplicationClass();
my.Visible=true;
//打开工作簿
Excel.Workbook mybook=my.Workbooks.Open(path1.Trim(),objMissing,objMissing, objMissing,
objMissing, objMissing, objMissing,
objMissing, objMissing, objMissing,
objMissing, objMissing, objMissing);
Excel.Worksheet mysheet=(Excel.Worksheet)mybook.Worksheets.get_Item(1);
//设置第10行为红色
mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Select();
mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Interior.ColorIndex=3;
读.txt的文件就没事。
这样是不能读取.doc文档的
只能用2楼的那种读取EXCEL的方法(读取WORD也是类似的Word.Application)
public static string Doc2Text(string docFileName)
{
try
{
//实例化COM
Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object fileobj = docFileName;
object nullobj = System.Reflection.Missing.Value;
//打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref fileobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj
);
//取得doc文件中的文本
string outText = doc.Content.Text;
//关闭文件
doc.Close(ref nullobj, ref nullobj, ref nullobj);
//关闭COM
wordApp.Quit(ref nullobj, ref nullobj, ref nullobj);
//返回
return outText;
}
catch
{
return null;
}
}