c#实现excel输出文件后保存的问题和再次输出文件的覆盖问题,急!
前提:form方式下C#代码实现从datatable中输出数据到excel文件中
代码:
//DataTable 对象
int cols = dt.Columns.Count;
int rows = dt.Rows.Count;
//excel对象
Excel.ApplicationClass excel = new Excel.ApplicationClass();
excel.Visible = false;
object missing = System.Reflection.Missing.Value;
Excel.Workbook book = excel.Workbooks.Add(missing);
Excel.Worksheet sheet = (Excel.Worksheet)book.ActiveSheet;
......//省略datatable向excel.Cells中转换数据的过程代码
try
{
//excel.Save (excelfilepath);//excelfilepath为excel文件保存路径和文件名
book.SaveAs(excelfilepath,missing,missing,missing,missing,missing,Excel.XlSaveAsAccessMode.xlNoChange,1,true,missing,missing);
book.Close(false,excelfilename,true);
}
catch
{
......//省略回收代码
}
问题:
1、excel.Save 和book.SaveAs方法有什么不同?为什么使用excel.Save方法提示保存路径,但文件名使用“Book1.XLS”,并且还要在“我的文档”下再保存一个excel文件?而使用book.SaveAs方法输出的excel文件,不提示保存路径,直接存到指定的excelfilepath下,且不会往“我的文档”下再保存文件?
2、使用book.SaveAs方法输出excel文件保存后,若再输出一次,文件提示覆盖时,选择“否”,会出现往“我的文档”下保存文件的提示?这是为什么?能不能避免往“我的文档”下保存文件。
3、若想实现功能:输出excel文件时,提示路径选择和文件名变更;并在再输出一次,仍是提示路径选择和文件名变更。如何实现?
------解决方案--------------------book.Saved = false;
book.SaveCopyAs( " ");
------解决方案--------------------顶
------解决方案--------------------book.Saved = false;
book.SaveAs(...);
------解决方案--------------------什么年代了,还用这么老套的方法实现?
用数据流撒,效率高哦!