C#WPS导出EXCEL

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();
                }
相关推荐
Traced back6 小时前
怎么用 Modbus 让两个设备互相通信**,包含硬件接线、协议原理、读写步骤,以及 C# 实操示例。
开发语言·c#
一个帅气昵称啊7 小时前
基于.NET AgentFramework开发OpenClaw智能体框架
人工智能·自然语言处理·c#·.net·openclaw
唐青枫7 小时前
C#.NET SpinLock 深入解析:自旋锁原理、使用边界与性能取舍
c#·.net
菌菌的快乐生活14 小时前
在 WPS 中设置 “第一章”“第二章” 这类一级编号标题自动跳转至新页面
前端·javascript·wps
CSharp精选营15 小时前
.NET对象转JSON,到底有几种方式?
c#·json·.net·newtonsoft·对象转换·utf8json
fanchenxinok16 小时前
LIN矩阵Excel ⇄ LDF互转工具:打通设计数据与协议描述的关键桥梁
矩阵·excel·lin·ldf·excel和ldf互转
bcbobo21cn16 小时前
C#引用类型学习
开发语言·c#·值类型·引用类型
天下无敌笨笨熊16 小时前
C#异步开发探微
开发语言·c#
mudtools16 小时前
存储那么贵,何不白嫖飞书云文件空间
前端框架·c#·.net