1、首先安装金山WPS ,然后在安装包中找到 etapi.dll 这个文件,导入到项目中,然后添加引用
在引用中出现EXCEL 就是已经将API导入到了程序中,
2、在命名空间中引用 using Excel;
3、开始编写导出程序,本例以datagridview导出EXCEL为例子.
csharp
//首先创建一个application
Excel.Application appli = new Excel.Application();
//创建workbook
Excel.Workbook wk = appli.Workbooks.Add(Type.Missing);
//创建一个sheet表
Excel.Worksheet sheet = wk.ActiveSheet;
//合并表中单元格 从第1行第1列到第一行第几列
Range r1 = sheet.Range[sheet.Cells[1, 1], sheet.Cells[1, dgv.Columns.Count]];
清空合并后单元格
r1.Clear();
/开始合并
r1.MergeCells = true;
//为合并后的单元格赋值
r1.Value2 = titleName;
//设置字体大小
r1.Font.Size = 14;
//文字垂直居中
r1.HorizontalAlignment = Constants.xlCenter;
r1.VerticalAlignment = Constants.xlCenter;
//循环导入列标题
for (int i = 0; i < dgv.Columns.Count; i++)
{
//为表中单元格赋值
sheet.Cells[3, i + 1] = dgv.Columns[i].HeaderText;
}
//这里设置一个行变量
int index = 4;
for (int i = 0; i < dgv.Rows.Count; i++)
{
for (int j = 0; j < dgv.Columns.Count; j++)
{
//循环导入datagridview中的数据
sheet.Cells[index, j + 1] = dgv.Rows[i].Cells[j].Value.ToString();
}
//每完成导入一行后+1跳到下一行导入
index++;
}
//设置自动列宽
Excel.Range userRanded = sheet.UsedRange;
userRanded.EntireColumn.AutoFit();
//保存导出的数据
wk.SaveAs(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
//释放资源
wk.Close(Type.Missing, Type.Missing, Type.Missing);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wk);
System.Runtime.InteropServices.Marshal.ReleaseComObject(appli);
** //如果文件打开了需要导出完成后先杀死进程然后再保存**
Process[] proces = Process.GetProcessesByName("et");
foreach (var item in proces)
{
item.Kill();
}