日期:2014-05-19  浏览次数:20829 次

谢谢!在winform里,导出excel后怎么能弹出让用户保存的对话框?
如题。

------解决方案--------------------
假设excel application是xlapp 调用xlapp.Save就可以弹出来
------解决方案--------------------
excel.application xlapp = new excel.application();

......

xlapp.Save(); //或xlapp.SaveAs();
------解决方案--------------------
要在C#中使用Excel,首先要建立对Excel的引用,方法如下:

确保Excel已安装
菜单“项目”-> “添加引用”
打开“COM”控制面板
选择“Microsoft Excel 11.0 Object Library”(Excel2003,如果版本不同库的版本也不同),点击确定

如果使用Excel2000,引入的COM库的命名空间即为Excel,而使用Excel2003,则其命名空间为Microsoft.Office.Interop.Excel

Excel.Application接口对就的就是Excel的应用程序接口

Do you understand?

------解决方案--------------------
用线程做,在线程的最后跳出一个保存对话框
------解决方案--------------------
嗯? 应该是 Workbook.Save() 吧
------解决方案--------------------
private void OpenFile(string strFileName)
{
if(MessageBox.Show( "您是否要打开选择文件? ", "打开数据文件 ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = strFileName;
process.StartInfo.Verb = "Open ";
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
process.Start();
}
catch
{
MessageBox.Show(this.mainfrm, "在您的系统中找不到可以打开此文件的应用程序。 ", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
------解决方案--------------------
//保存方式一:保存WorkBook
//workbook.SaveAs(@ "F:\CData.xls ",
// Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,
// Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,Missing.Value,Missing.Value,Missing.Value,
// Missing.Value,Missing.Value);

//保存方式二:保存WorkSheet
// worksheet.SaveAs(@ "F:\CData2.xls ",
// Missing.Value, Missing.Value, Missing.Value, Missing.Value,
// Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

////保存方式三
//workbook.Saved = true;
//workbook.SaveCopyAs(sfd.FileName);

导出 Excel 详情 见 我的博客 :http://community.csdn.net/Expert/topic/5638/5638956.xml?temp=8.579654E-02