winfrom导出excel让user选位置

-一个大坑 2017-12-05 03:53:52
导出不提示让我选位置
...全文
198 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
-一个大坑 2017-12-08
  • 打赏
  • 举报
回复
引用 7 楼 qq_17486399 的回复:
[quote=引用 5楼我是你的主体 的回复:][quote=引用 4 楼 qq_17486399 的回复:] [quote=引用 3 楼 happy4944 的回复:] [quote=引用 2 楼 qq_17486399 的回复:] path需要改成和普通的打开文件管理器,选择地址一样的操作即可。选择好后返回你选的的path
网上搜了下

 SaveFileDialog file = new SaveFileDialog();
                file.Filter = "|*.xls";
                file.ShowDialog();
                string path = file.FileName;
读取文件怎么写?winfrom不能用string path = Server.MapPath("~/Excel/XXX.xls"); 直接写死也不好,每次提示选也麻烦[/quote] 你这就麻烦了,既不要选择,也不要固定,能怎么办啊? 如果想要选择一次后,以后就就从你上次选择的文件夹下读取;可以将这个路径保存到配置文件,下次可以直接打开。[/quote] 我想要和Server.MapPath("~/Excel/XXX.xls");一样,直接读取excel文件夹下的xxx.xls这样user把程序移到哪个盘都能用。直接写死D盘,有的不一定放在d盘[/quote]小弟还真没办法了,一般相对路径是相对你的项目路径,但是你说的不确定在哪个盘,什么都不定的,只根据文件名判断,确实没见过。或者说你可以试着检索整个电脑所有的盘,找到这个文件[/quote] 直接XElement xe = XElement.Load(@"..\..\test.xml");就行了
-一个大坑 2017-12-08
  • 打赏
  • 举报
回复
引用 6 楼 guwei4037 的回复:
我封装成了一个方法,可以直接导出datagridview里的数据(带选择文件保存路径) http://www.cnblogs.com/guwei4037/p/3499327.html
现在导出选位置已经做好了。我想做的和服务器一样,用Server.MapPath("~/Excel/XXX.xls")来获得相对路径,不用写完整路径
-一个大坑 2017-12-07
  • 打赏
  • 举报
回复
引用 4 楼 qq_17486399 的回复:
[quote=引用 3 楼 happy4944 的回复:] [quote=引用 2 楼 qq_17486399 的回复:] path需要改成和普通的打开文件管理器,选择地址一样的操作即可。选择好后返回你选的的path
网上搜了下

 SaveFileDialog file = new SaveFileDialog();
                file.Filter = "|*.xls";
                file.ShowDialog();
                string path = file.FileName;
读取文件怎么写?winfrom不能用string path = Server.MapPath("~/Excel/XXX.xls"); 直接写死也不好,每次提示选也麻烦[/quote] 你这就麻烦了,既不要选择,也不要固定,能怎么办啊? 如果想要选择一次后,以后就就从你上次选择的文件夹下读取;可以将这个路径保存到配置文件,下次可以直接打开。[/quote] 我想要和Server.MapPath("~/Excel/XXX.xls");一样,直接读取excel文件夹下的xxx.xls这样user把程序移到哪个盘都能用。直接写死D盘,有的不一定放在d盘
大鱼> 2017-12-07
  • 打赏
  • 举报
回复
引用 5楼我是你的主体 的回复:
[quote=引用 4 楼 qq_17486399 的回复:] [quote=引用 3 楼 happy4944 的回复:] [quote=引用 2 楼 qq_17486399 的回复:] path需要改成和普通的打开文件管理器,选择地址一样的操作即可。选择好后返回你选的的path
网上搜了下

 SaveFileDialog file = new SaveFileDialog();
                file.Filter = "|*.xls";
                file.ShowDialog();
                string path = file.FileName;
读取文件怎么写?winfrom不能用string path = Server.MapPath("~/Excel/XXX.xls"); 直接写死也不好,每次提示选也麻烦[/quote] 你这就麻烦了,既不要选择,也不要固定,能怎么办啊? 如果想要选择一次后,以后就就从你上次选择的文件夹下读取;可以将这个路径保存到配置文件,下次可以直接打开。[/quote] 我想要和Server.MapPath("~/Excel/XXX.xls");一样,直接读取excel文件夹下的xxx.xls这样user把程序移到哪个盘都能用。直接写死D盘,有的不一定放在d盘[/quote]小弟还真没办法了,一般相对路径是相对你的项目路径,但是你说的不确定在哪个盘,什么都不定的,只根据文件名判断,确实没见过。或者说你可以试着检索整个电脑所有的盘,找到这个文件
全栈极简 2017-12-07
  • 打赏
  • 举报
回复
我封装成了一个方法,可以直接导出datagridview里的数据(带选择文件保存路径) http://www.cnblogs.com/guwei4037/p/3499327.html
大鱼> 2017-12-06
  • 打赏
  • 举报
回复
引用 3 楼 happy4944 的回复:
[quote=引用 2 楼 qq_17486399 的回复:] path需要改成和普通的打开文件管理器,选择地址一样的操作即可。选择好后返回你选的的path
网上搜了下

 SaveFileDialog file = new SaveFileDialog();
                file.Filter = "|*.xls";
                file.ShowDialog();
                string path = file.FileName;
读取文件怎么写?winfrom不能用string path = Server.MapPath("~/Excel/XXX.xls"); 直接写死也不好,每次提示选也麻烦[/quote] 你这就麻烦了,既不要选择,也不要固定,能怎么办啊? 如果想要选择一次后,以后就就从你上次选择的文件夹下读取;可以将这个路径保存到配置文件,下次可以直接打开。
-一个大坑 2017-12-06
  • 打赏
  • 举报
回复
引用 2 楼 qq_17486399 的回复:
path需要改成和普通的打开文件管理器,选择地址一样的操作即可。选择好后返回你选的的path
网上搜了下

 SaveFileDialog file = new SaveFileDialog();
                file.Filter = "|*.xls";
                file.ShowDialog();
                string path = file.FileName;
读取文件怎么写?winfrom不能用string path = Server.MapPath("~/Excel/XXX.xls"); 直接写死也不好,每次提示选也麻烦
大鱼> 2017-12-05
  • 打赏
  • 举报
回复
path需要改成和普通的打开文件管理器,选择地址一样的操作即可。选择好后返回你选的的path
-一个大坑 2017-12-05
  • 打赏
  • 举报
回复

public bool ExportDataGridView(DataGridView dgv, string path)
        {
            try
            {
                HSSFWorkbook workbook = new HSSFWorkbook();
                ISheet sheet = workbook.CreateSheet();
                IRow dataRow = sheet.CreateRow(0);

                //填充内容   
                for (int i = 0; i < dgv.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dgv.Columns.Count; j++)
                    {
                        ICell icell = dataRow.CreateCell(j);
                        icell.SetCellValue(dgv.Rows[i].Cells[j].Value.ToString());
                        icell.CellStyle = style;
                    }
                }

                //列宽自适应,只对英文和数字有效
                for (int i = 0; i <= dgv.Rows.Count; i++)
                {
                    sheet.AutoSizeColumn(i);
                }

                using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
                {
                    workbook.Write(fs);
                    fs.Dispose();
                }
            }
            catch
            {
                return false;
            }
            return true;
        }

62,046

社区成员

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

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

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

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