在程序中经常遇到这样一种情况,根据一个指定的模板执行写入操作,今天说一下这种情况如何操作。
- 添加引用:Microsoft.Office.Interop.Excel.dll[Microsoft.Office.Interop.Excel.dll]
- 命名空间:using Excel = Microsoft.Office.Interop.Excel;
命名空间:using System.Reflection;命名空间:using System.Diagnostics; 代码如下:
//指定模板路径,%\bin\Debug,建议为相对路径 string str = System.Windows.Forms.Application.StartupPath; //创建Excel对象 Excel.Application excel_template = new Excel.Application(); excel_template.UserControl = true; //新建工作簿并加入模板 Excel.Workbook workBook = excel_template.Workbooks.Add(@str + "\\Template.xlsx"); //Try catch语句是为了捕获异常,不知道的小伙伴可忽略 try { //3.3对已导出好的Excel报表进行保存到指定路径下,以便进行查看。 //Missing 在System.Reflection命名空间下。 //选择保存路径 string savaPath = ""; SaveFileDialog opd = new SaveFileDialog();//System.Windows.Forms下的方法SaveFileDialog,可以弹出对话框来选择路径。 opd.Filter = @"Excel文件 (*.xls,*.xlsx,*.xlsm)|*.xls;*.xlsx;*.xlsm";//选择保存类型 opd.FilterIndex = 1; opd.FileName = "\\测试表" + DateTime.Now.ToString("yyyy_MM_dd_HHmmss") + ".xlsx";//指定文件名及类型 opd.RestoreDirectory = true; if (opd.ShowDialog() == DialogResult.OK) { savaPath = opd.FileName; } workBook.SaveAs(savaPath, 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);//保存 //关闭Excel对象 //显示excel excel_template.Visible = true; } catch { XtraMessageBox.Show("路径选择有误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } //写入 excel_template.Cells[1, 1] = string.Format("测试表");//cell中的内容为指定excel的位置 excel_template.Cells[2, 4] = string.Format("成功写入");