datagridview导出excel的保存问题:
using System.Reflection;//Missing的命名空间
a.Worksheet worksheet = null;//定义工作表
1、wBook.Save();app.Save("C://abc.xls");这两句代码至关重要,而且必不可少,否则,保存时会弹出“是否保存sheet1.xls”的对话框。像示例中的保存,在windows server 2003中,因为权限的原因,还可能会出现这样的现象(其它操作系统的结果有待考证):生成的abc.xls除了本机上运行此代码的用户打开正常外,其他户打开后的错误信息如下:
无法访问文件。请尝试下列方法之一:
确认所指定的文件夹已存在。
确认文件所在的文件夹不是只读的。
确认给出的文件名不包含下列字符:<>?[]:Sheet1.xls或*。
确认文件/路径名长度不超过218个字符。
因为此时创建的工作簿其实是在当前用户的“我的文档”目录下自动生成了一个Sheet1.xls副本,而abc.xls是指向这个副本的快捷方式,所以导致其他用户无权访问。采取的解决办法是将这两句替换为:
worksheet.SaveAs("d://abc.xls",a.XlFileFormat.xlXMLSpreadsheet, Missing.Value, Missing.Value,false, false,a.XlSaveAsAccessMode .xlNoChange , Missing .Value ,Missing .Value ,Missing .Value ,Missing .Value,Missing .Value );
workbook.Save("文件名")