【发布时间】:2012-02-20 22:41:18
【问题描述】:
我已经搜索过,但没有找到任何直接命中我正在寻找的内容(或者我的搜索没有命中单词组合)。
在 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) 会导致提示。当我尝试它时,我收到“当应用程序未在 UserInteractive 模式下运行时显示模式对话框不是有效操作”错误。 我会粘贴我所有的代码,但它在一个单独的系统上,但它只是:
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
【问题讨论】:
标签: c# excel automation savefiledialog