环境:VS2010 Excel2010
要引用Microsoft Excel 14.0 Object Liberty
引用的命名空间:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Data.OleDb;
using System.Collections;
void ThetThirdPartyDamage(string FileName,string filePath)
{
string xlsFilePath = filePath +"\\"+ FileName;//参数为文件名和文件路径,在此处连接成一个完整的文件路径
Missing miss = Missing.Value;
Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(miss);
Excel.Workbook workbook;
Excel.Worksheet worksheet;
//excel.Visible = false; //是Excel可见,表示创建过后显示
//如果要导出到固定路径下,则要修改这里的Excel.XlWBATemplate.xlWBATWorksheet参数,为制定的路径
workbook = excel.Workbooks.Add(Type.Missing);
worksheet = (Excel.Worksheet)workbook.ActiveSheet;
//写入表头/
worksheet.Cells[1, 1] = "OBJECTID";
worksheet.Cells[1, 2] = "姓名";
worksheet.Cells[1, 3] = "性别";//这里看你自己 的信息列数
//写入数据有效性
Excel.Range range2 = worksheet.Columns[1];
range2.Validation.Add(Excel.XlDVType.xlValidateList, Excel.XlDVAlertStyle.xlValidAlertStop, Type.Missing, "男,女", Type.Missing);//此处不需要自己输入值,而是通过下拉框进行选择性别值
Excel.Range range = worksheet.Rows[1];
range.Validation.Delete();//消除第一行的数据有效性;
try
{
worksheet.SaveAs(xlsFilePath, miss, miss, miss, miss, miss, Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss);
}
catch
{
}
//关闭表格
workbook.Close(false, miss, miss);
excel.Workbooks.Close();
//释放资源
excel.Quit();
//询问是否打开生成的文档
if (MessageBox.Show("导出文档模板成功! 文档路径:" + xlsFilePath + ",是否需要立即打开!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
System.Diagnostics.Process.Start(xlsFilePath);//打开excel
}
}
网上找了很多都没有成功的模板导出,现在终于自己有了完整的代码,换一台电脑应该没错了吧!