c# datagridview 导出excel的保存问题

在Windows Server 2003环境下,使用C#将Datagridview数据导出到Excel时,直接保存可能会导致权限问题和其他用户无法访问。通过修改保存路径并使用SaveAs方法,可以解决这个问题,避免生成指向快捷方式的文件,确保所有用户都能正常访问导出的Excel文件。
摘要由CSDN通过智能技术生成

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("文件名")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值