问题描述
(除了微软自带的和NPOI)微软的还要装word麻烦,NPOI对word2003读写不太支持,不够稳定。还有其他办法吗?在线等!!
解决方案
解决方案二:
如果不需要组件,有代码也行
解决方案三:
Aspose.word
解决方案四:
@inori0223word用filestream读出来的字节流在转换成string会有乱码(各种编码都试过),为什么?
解决方案五:
Aspose.word是收费的..
解决方案六:
引用3楼lgd8468的回复:
@inori0223word用filestream读出来的字节流在转换成string会有乱码(各种编码都试过),为什么?
你当word文件是文本文件吗?。。。
解决方案七:
引用4楼lgd8468的回复:
Aspose.word是收费的..
有破解版的啊。
解决方案八:
破解版还是有版权问题吧还是有有限制...为什么word字节流能正确保存但不能取成字符串
解决方案九:
我的天一个中国程序员居然跟我提"版权"2个字....我能"呵呵"吗?
解决方案十:
用word的飘过,参考地址http://blog.csdn.net/lutaotony/article/details/50460999
解决方案十一:
dsoframer
解决方案十二:
微软的不就是几个com嘛,把dll拷过来直接用啊
解决方案十三:
NOPI读取Word模板并保存可以在程序包管理器控制台中输入PM>Install-PackageNPOI会下载最新版本NPOIpublicstaticvoidExport(){stringfilepath=HttpContext.Current.Server.MapPath("~/simpleTable.docx");Testtt=newTest{name="cjc",age=29};using(FileStreamstream=File.OpenRead(filepath)){XWPFDocumentdoc=newXWPFDocument(stream);//遍历段落foreach(varparaindoc.Paragraphs){ReplaceKey(para,tt);}//遍历表格vartables=doc.Tables;foreach(vartableintables){foreach(varrowintable.Rows){foreach(varcellinrow.GetTableCells()){foreach(varparaincell.Paragraphs){ReplaceKey(para,tt);}}}}FileStreamout1=newFileStream(HttpContext.Current.Server.MapPath("~/simpleTable"+DateTime.Now.Ticks+".docx"),FileMode.Create);doc.Write(out1);out1.Close();}}privatestaticvoidReplaceKey(XWPFParagraphpara,objectmodel){stringtext=para.ParagraphText;varruns=para.Runs;stringstyleid=para.Style;for(inti=0;i<runs.Count;i++){varrun=runs[i];text=run.ToString();Typet=model.GetType();PropertyInfo[]pi=t.GetProperties();foreach(PropertyInfopinpi){//$$与模板中$$对应,也可以改成其它符号,比如{$name},务必做到唯一if(text.Contains("$"+p.Name+"$")){text=text.Replace("$"+p.Name+"$",p.GetValue(model,null).ToString());}}runs[i].SetText(text,0);}}publicstaticvoidExport(){stringfilepath=HttpContext.Current.Server.MapPath("~/simpleTable.docx");Testtt=newTest{name="cjc",age=29};using(FileStreamstream=File.OpenRead(filepath)){XWPFDocumentdoc=newXWPFDocument(stream);//遍历段落foreach(varparaindoc.Paragraphs){ReplaceKey(para,tt);}//遍历表格vartables=doc.Tables;foreach(vartableintables){foreach(varrowintable.Rows){foreach(varcellinrow.GetTableCells()){foreach(varparaincell.Paragraphs){ReplaceKey(para,tt);}}}}FileStreamout1=newFileStream(HttpContext.Current.Server.MapPath("~/simpleTable"+DateTime.Now.Ticks+".docx"),FileMode.Create);doc.Write(out1);out1.Close();}}privatestaticvoidReplaceKey(XWPFParagraphpara,objectmodel){stringtext=para.ParagraphText;varruns=para.Runs;stringstyleid=para.Style;for(inti=0;i<runs.Count;i++){varrun=runs[i];text=run.ToString();Typet=model.GetType();PropertyInfo[]pi=t.GetProperties();foreach(PropertyInfopinpi){//$$与模板中$$对应,也可以改成其它符号,比如{$name},务必做到唯一if(text.Contains("$"+p.Name+"$")){text=text.Replace("$"+p.Name+"$",p.GetValue(model,null).ToString());}}runs[i].SetText(text,0);}}
http://www.cnblogs.com/Jerrycjc/archive/2016/05/06/5465534.html
解决方案十四:
把微软的com引用过来也需要安装吧?
解决方案十五:
NOPI不够稳定,我试过