我搜索了很久,但似乎没有直接解决我的问题的答案(或者是我的搜索关键词不太准确)。
在C#中,我使用Interop.Excel创建了一个Excel表格,并将一些数据插入其中并创建了一个图表。当我执行xlWorkBook.SaveAs时,一切正常。
我的需求是要求用户提示将自动化的工作簿保存到他们自己的文件名下。我曾经尝试过像这位网友所说的(http://p2p.wrox.com/vb-how/63900-disabling-second-excel-save-prompt.html),他基本上做了一个新的SaveFileDialog,然后如果== OK,他就创建了自己的Excel表格,然后说他的workbook.SaveAs(FilePathFromSaveAsDialog)会引起提示。 当我尝试时,我收到“在非交互模式下运行应用程序时显示模态对话框框不是有效操作”错误消息。
我可以贴出全部代码,但它在另一个系统上,但它的主体是:
using Excel = Microsoft.Office.Interop.Office
//....then on click of link button....
Excel.Application xlApp;
Excel.Workbook xlWorbook;
Excel.Workbooks xlWorkbooks;
Excel.Sheets xlSheets;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBooks = xlApp.Workbooks;
xlWorkBook = xlWorbooks.Add(misValue);
xlSheets = xlWorkBook.Worksheets;
xlWorkSheet = (Excel.Worksheet)xlSheets.get_Item(1);
//....Now I fill my Excel sheet data and make my chart >>> then I close like below...
xlApp.DisplayAlerts = true;
//HERE IS WHERE I WANT TO EITHER PASS THE PATH AND FILE NAME FROM USER OR USE A PROMPT
xlWorkBook.SaveAs("Test.xls", Excel.XFileFormat.XlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
//finally I release all my objects via Marshal.ReleaseComObject then GC.Collect