//关闭当前的StreamWriter流 textFile.Close(); System.Windows.Forms.MessageBox.Show("数据文件已保存到"+" "+file.FullName); } else { System.Windows.Forms.MessageBox.Show("No Data"); } } public string GetTempFileName() { return DateTime.Now.ToString("yyyyMMddhhmmssfff"); } } } 补充:使用以上方法必须对dcom进行配置,给用户使用office的权限。 具体配置方法如下: 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框 5:点击"标识"标签,选择"交互式用户" 6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限. 7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限. 这样,我们便配置好了相应的Excel的DCOM权限. 注意:我是在WIN2003上配置的,在2000上,是配置ASPNET用户 若不进行配置会出现错误 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。 原因是用户没有使用Excel的权限。 导出到word同样要配置使用word的权限。 继续补充: 导出到txt我用了上面的方法有问题, try { textFile = file.CreateText(); } catch { System.Windows.Forms.MessageBox.Show("系统找不到指定目录下的文件: "+TXTPATH+tempFileName+TXTPOSTFIX); return; } 总是在这里跳到catch里面。导出到word,excel都能用,继续研究txt的使用方法。 |