导出excel 保存在桌面时出错

问题描述

Microsoft.Office.Interop.Excel.ApplicationapplExcel=newMicrosoft.Office.Interop.Excel.ApplicationClass();Microsoft.Office.Interop.Excel.WorkbookxlWorkbook;Microsoft.Office.Interop.Excel.WorksheetxlWorksheet;System.Reflection.MissingoMissing=System.Reflection.Missing.Value;try{applExcel.Visible=true;xlWorkbook=applExcel.Workbooks.Add(oMissing);xlWorksheet=(Microsoft.Office.Interop.Excel.Worksheet)xlWorkbook.Worksheets.Add(oMissing,oMissing,1,oMissing);xlWorksheet.Name="NewWorksheet";xlWorksheet.Cells[1,1]="Topic:";xlWorksheet.Cells[1,2]=".NetInteropExcelDemo";xlWorkbook.SaveAs(saveAsPath,oMissing,oMissing,oMissing,oMissing,oMissing,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared,oMissing,oMissing,oMissing,oMissing,oMissing);applExcel.Quit();}catch(System.Exceptionex){//showError(ex.Message);}finally{System.Runtime.InteropServices.Marshal.ReleaseComObject(applExcel);xlWorksheet=null;xlWorkbook=null;applExcel=null;GC.Collect();}保存于其他盘都可以,唯独保存于桌面时会出错???

解决方案

解决方案二:
这种问题好象是因为桌面的文件夹路径中存在空格(比如DocumentsandSettings中间就有空格,可能把这个空格用其他字符替换了),所以导致。我怀疑这个应该是个Bug。
解决方案三:
參考:Excel.ApplicationappExcel=null;Excel._Workbookworkbook=null;Excel._WorksheetworksheetGrid=null;try{SaveFileDialogdlg=newSaveFileDialog();dlg.InitialDirectory="D:\";dlg.Filter="Excel文件|*.xls";dlg.DefaultExt="xls";dlg.AddExtension=true;dlg.OverwritePrompt=false;dlg.Title="導出Excel文件,請指定路徑(操作員在此路徑需要有寫入權限),同時輸入文件名";stringfileName=string.Empty;if(dlg.ShowDialog()==DialogResult.OK){fileName=dlg.FileName;if(fileName!=string.Empty){//狀態信息this.Cursor=Cursors.WaitCursor;appExcel=newExcel.ApplicationClass();workbook=appExcel.Workbooks.Add(Type.Missing);worksheetGrid.Activate();appExcel.ActiveWindow.Zoom=75;//刪除多余的sheetExcel.Worksheetworksheet2=(Excel.Worksheet)workbook.Worksheets.get_Item(2);Excel.Worksheetworksheet3=(Excel.Worksheet)workbook.Worksheets.get_Item(3);worksheet2.Delete();worksheet3.Delete();//處理數據進入Excel--this.ExportData(worksheetGrid,mView);appExcel.ActiveWorkbook.SaveAs(fileName,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Excel.XlSaveAsAccessMode.xlExclusive,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);MessageBox.Show("導出成功,文件位于:"+fileName+"");worksheetGrid=null;workbook=null;appExcel.Quit();appExcel=null;}}

时间: 2024-09-12 10:39:07

导出excel 保存在桌面时出错的相关文章

vb.net导出excel保存到桌面的问题

问题描述 我用vb.net生成了一个excel表格,我想把它保存到桌面,一开始程序里路径直接用的是我的电脑里桌面的路径,后来发现由于用户名不一样,程序到其他电脑上就用不了了.我在网上找到了获取桌面路径的语句path=System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop)但是用什么类型的对象可以保存这个路径?DimswAsFileStream=File.Create("C:UsersxiaoqiDesktop有限元计算

php输出xml(导出excel)数据过长时被截断

在使用xml来导出excel时,发现小数量(1k以下)时能正常导出excel,但将导出数量调大(几K)时,发现导出的excel数据不全. (在我本地是好的,在线上服务器跑就有问题...) 检查导出的xml数据,发现内容被截断了,有时连xml标签都不全. php-xml-excel 首先怀疑是输出的内容字节过长,超出了环境配置的上限.检查了output_buffering和nginx的fastcgi_buffer相关设置,都没有问题.和我本地的值一样,修改后也没有影响. 之后就Google了下,发

php excel reader2.21导出excel中文乱码解决方法说明

之前我的PHP教程博客访友询问使用php excel reader2.21导出excel时中文出现乱码如何解决,现我说明下php excel reader导出excel中文乱码的解决方法,希望对使用php excel reader导出excel的朋友有所帮助. php excel reader介绍 php excel reader是一个读取Excel xsl文件内容的一个php excel类,目前最新版本是php excel reader2.21,网上可自行搜索,sourceforge上的php

excel-C# 导出Excel命名 时 获取保存时目标文件夹 下的 最大流水码

问题描述 C# 导出Excel命名 时 获取保存时目标文件夹 下的 最大流水码 在导出Excel时 excel命名规范为:当前月日+'_'+2位流水码. 例: 在第一次导出到桌面时 文件名:0218_01 , 当再一次导出到桌面时 应是 0218_02 解决方案 如果目录只有你这种格式的文件,Directory.GetFiles得到的是一个升序的文件名列表,最后一项就是最大的,自己split下得到数组,取第二项+1就得到新文件了,如果有其他文件名格式的文件,需要遍历才行了 这个是遍历的 stri

请教C#,Form窗口的一个Button,调用Excel导出表格时出错

问题描述 请教C#,Form窗口的一个Button,调用Excel导出表格时出错 一个调用Excel导出表的操作,出错.请熟悉excel调用的高手指教. 相关代码: private void button1_Click(object sender, EventArgs e) { saveFileDialog1.AddExtension = true;//对话框自动在文件名中添加扩展名 saveFileDialog1.FileName = name+"与"+name1+"担保信

asp.net2.0中导出EXCEL时内容为什么始终为空?[高分]

问题描述 asp.net2.0中导出EXCEL时内容为什么始终为空?实现方式,首先生成HTML摸板[格式如下,内容太长删除了一些]privateStringBuilderpHead=newStringBuilder();privateStringBuilderpBody=newStringBuilder();privateStringBuilderpFoot=newStringBuilder();publicRptSpareQuery(){pHead.Append("<htmlxmlns:

asp.net导出excel文件的程序调试没问题但布置时出现问题

asp.net布置导出excel文件的程序,报80070005 8000401A的错误解决方法 .NET导出Excel遇到的80070005错误的解决方法: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基本上.net导出excel文件,都需要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错. 具体配置方法如下:  1:在服务器上安装office的Excel软件. 

标签-导出Excel表格怎么让用户选择文件保存的地址

问题描述 导出Excel表格怎么让用户选择文件保存的地址 点击导出按钮时JSP弹出个类似标签的对话框让用户选择Excelw文件保存地址 解决方案 JSP文件操作大全 解决方案二: 文件导出时,如果浏览器收到的响应式二进制文件流,会自动给出保存按钮,让用户保存的. 就类似文件下载时,浏览器会让你选择是打开,还是另存为.一样的.

数据量在十万级时多线程导出Excel,怎么做呢?

问题描述 数据量在十万级时多线程导出Excel,怎么做呢?(1),在导出Excel的时候遇到数据量较大的时候,出现假死,(2),用一种思路就是多线程优化导出. 解决方案 解决方案二:引用楼主u012764390的回复: (2),用一种思路就是多线程优化导出. 不懂你这是什么思路.有根据么?解决方案三:多线程既可能缩短时间,也可能多花时间.没有深入一点的分析,就不能知道该做什么.建议你还是回到系统出发点去重新研究设计.解决方案四:(2),用一种思路就是多线程优化导出.这是什么意思?多开几个线程可以