为何SaveFileDialog保存的文件路径不能打开

 我来答
夜光系9869
2013-12-09 · TA获得超过203个赞
知道答主
回答量:116
采纳率:0%
帮助的人:121万
展开全部
这是我写的表示层的代码: private void btnExport_Click(object sender, EventArgs e){if (this.dgvShow.Rows.Count <= 0){MessageBox.Show("没有数据可以导出!!!");return;}SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.DefaultExt = "xls"; //设置默认文件类型显示顺序 fileDialog.FilterIndex = 2; //保存对话框是否记忆上次打开的目录 fileDialog.RestoreDirectory = true; if (fileDialog.ShowDialog() == DialogResult.OK){if ((fileDialog.OpenFile()) != null){//获得文件路径 String localFilePath = fileDialog.FileName; teacherService.ExportData(dgvShow, localFilePath); MessageBox.Show("OK!!");return;}}MessageBox.Show("Error!!");}我把导Excel数据的代码: public void ExportData(DataGridView dgvShow,String dir){Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); excel.Workbooks.Add(); int num = 1; for (int i = 0; i < dgvShow.Columns.Count; i++){if (dgvShow.Columns[i] is DataGridViewTextBoxColumn){excel.Cells[1, num] = dgvShow.Columns[i].HeaderText;num++;}}for (int i = 0; i < dgvShow.Rows.Count; i++){num = 1;for (int j = 0; j < dgvShow.Columns.Count; j++){string value = dgvShow.Rows[i].Cells[j].Value.ToString(); if (dgvShow.Columns[j] is DataGridViewTextBoxColumn){excel.Cells[i + 2, num] = value;num++;}}}excel.ActiveWorkbook.SaveAs(dir,XlFileFormat.xlWorkbookNormal); excel.ActiveWorkbook.Close(); ------解决方案-------------------------------------------------------- 首先文件流打开没关闭,这是你写不进去的原因 其次filter都没指定内容,你指定filterindex干吗 ------解决方案-------------------------------------------------------- if ((fileDialog.OpenFile()) != null) 我一直没用过OpenFile的方法 ------解决方案--------------------------------------------------------探讨首先文件流打开没关闭,这是你写不进去的原因 其次filter都没指定内容,你指定filterindex干吗 ------解决方案-------------------------------------------------------- 这还不对就该看你export的方法了,你debug跟一下看看吧 比如dgvShow.Rows[i].Cells[j].Value.ToString(); 如果dgvShow.Rows[i].Cells[j]是null的话,这句就会报错 ------解决方案-------------------------------------------------------- 你可以在写入之前,退出你的程序,试试删除被保存的文件,看看有没有 提示被占用。 这个问题我之前页翻过。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式