在C#开发的ASP。NET环境下如果生成Word,和Excel文件?

gsoft 2005-08-18 11:04:56
我的开发环境是用Visual Studio C#开发WEB应用,其中需要把数据库的表数据按照要求输出到生成的Word,Excel文件中,请指导如何处理,最好有代码,本人初学,

在此先谢谢了
...全文
532 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilian_bu 2005-10-18
  • 打赏
  • 举报
回复
在web.config里加上这一句就不会出现拒绝访问的问题了。<identity impersonate="true"/>
第二个问题,我也正在做和你一样的 程序,看了好多资料,最后的结论就是web应用下就是只能启动word进程而不能打开word主窗口(window应用下就可以,郁闷!)。
我(做的是excel)现在采用的是打开一个excel模板然后写数据以后生成一个报表文件,之后以文件流的方式输出到web页面上。这样用户可以在线浏览,也可以保存到本地。
wenl 2005-10-17
  • 打赏
  • 举报
回复
mark
gsoft 2005-08-30
  • 打赏
  • 举报
回复
帮忙呀
gsoft 2005-08-29
  • 打赏
  • 举报
回复
TO: xiaoxiao112(小小)
我对应的把你的代码改成word的处理程序,但是调用时,显示“MS Word无法导入指定的格式”。
此外,如何在指定的EXCEL单无格中写入数据,如何在指定的WORD中的表格中的指定位置写入数据。
string fname = "word";
string ftype = "doc";
StringBuilder strContent=new StringBuilder(" ");
string strhtml="你生成的html代码";
//报表开始
strContent.Append(strhtml);

Response.Clear();
Response.Charset="utf-8";
Response.AppendHeader("Content-Type", "Application/vnd.ms-word; charset=gb2312");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//解决中文乱码之关键
Response.Write(strContent);
Response.AddHeader ("content-disposition","attachment;filename="+fname+"."+ftype);
Response.End();
powerllr 2005-08-24
  • 打赏
  • 举报
回复
把这一句扔到你的Web.config里面去
<identity impersonate="true"/>
xiaoxiao112 2005-08-24
  • 打赏
  • 举报
回复
给你一最简单,最实用,最好的方法:
把你要生成的excel或word模版保存html样式。再把要的数据在相应的位置写进去。组成字符串。
在写下面带码就可以了

string fname = "excel";
string ftype = "xls";
StringBuilder strContent=new StringBuilder(" ");
string strhtml="你生成的html代码";
//报表开始
strContent.Append(strhtml);

Response.Clear();
Response.Charset="utf-8";
Response.AppendHeader("Content-Type", "Application/vnd.ms-Excel; charset=gb2312");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//解决中文乱码之关键
Response.Write(strContent);
Response.AddHeader ("content-disposition","attachment;filename="+fname+"."+ftype);
Response.End();
gsoft 2005-08-24
  • 打赏
  • 举报
回复
帮忙呀
lamida 2005-08-19
  • 打赏
  • 举报
回复
up
gsoft 2005-08-19
  • 打赏
  • 举报
回复
谢谢楼下两位大侠,可以调用了,不出错了,后台启动了Winword.exe进程,但没有出现Winword应用窗口,也没有生成temp001.html文件


请大家再帮帮呀
gsoft 2005-08-18
  • 打赏
  • 举报
回复
thank you very much,
i ' ll find it .
JzeroBiao 2005-08-18
  • 打赏
  • 举报
回复
http://lightsky.cnblogs.com/archive/2005/08/15/215611.html
tigerwen01 2005-08-18
  • 打赏
  • 举报
回复
运行dcomcnfg指令—“应用程序”里选择“ Microsoft Word”—“属性”-“安全性”-“编辑”,编辑word的权限。
njmaxiang 2005-08-18
  • 打赏
  • 举报
回复
建议把文件夹的访问权限设置一下
gsoft 2005-08-18
  • 打赏
  • 举报
回复
请帮忙,这是怎么回事?
private void Button1_Click(object sender, System.EventArgs e)
{
Word.ApplicationClass word = new Word.ApplicationClass();
Type wordType = word.GetType();
Word.Documents docs = word.Documents;

// 打开文件
Type docsType = docs.GetType();
object fileName = "c:\\temp001.doc";
Word.Document doc = (Word.Document)docsType.InvokeMember("Open",
System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] {fileName, true, true});

// 转换格式,另存为
Type docType = doc.GetType();
object saveFileName = "d:\\tmp\\aaa.html";
//下面是Microsoft Word 9 Object Library的写法,如果是10,可能写成:
//docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
//null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML});
///其它格式:
///wdFormatHTML
///wdFormatDocument
///wdFormatDOSText
///wdFormatDOSTextLineBreaks
///wdFormatEncodedText
///wdFormatRTF
///wdFormatTemplate
///wdFormatText
///wdFormatTextLineBreaks
///wdFormatUnicodeText
docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,
null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatHTML});

// 退出 Word
wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod,
null, word, null);

}


“/TestWebWord”应用程序中的服务器错误。
--------------------------------------------------------------------------------

拒绝访问。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 拒绝访问。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

源错误:


行 49: private void Button1_Click(object sender, System.EventArgs e)
行 50: {
行 51: Word.ApplicationClass word = new Word.ApplicationClass();
行 52: Type wordType = word.GetType();
行 53: Word.Documents docs = word.Documents;


源文件: c:\inetpub\wwwroot\testwebword\webform1.aspx.cs 行: 51

堆栈跟踪:


[UnauthorizedAccessException: 拒绝访问。]
TestWebWord.WebForm1.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\testwebword\webform1.aspx.cs:51
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277


62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧