asp.net C#数据导出Excel实例介绍
excel导出在C#代码中应用己经很广泛了,我这里就做些总结,供自己和读者学习用。
Excel知识点。
一、添加引用和命名空间
添加Microsoft.Office.Interop.Excel引用,它的默认路径是C:Program FilesMicrosoft Visual
Studio 9.0Visual Studio Tools for
OfficePIAOffice12Microsoft.Office.Interop.Excel.dll
代码中添加引用using
Microsoft.Office.Interop.Excel;
二、Excel类的简单介绍
此命名空间下关于Excel类的结构分别为:
ApplicationClass - 就是我们的excel应用程序。
Workbook -
就是我们平常见的一个个excel文件,经常是使用Workbooks类对其进行操作。
Worksheet - 就是excel文件中的一个个sheet页。
Worksheet.Cells[row, column] -
就是某行某列的单元格,注意这里的下标row和column都是从1开始的,跟我平常用的数组或集合的下标有所不同。
知道了上述基本知识后,利用此类来操作excel就清晰了很多。
三、Excel的操作
任何操作Excel的动作首先肯定是用excel应用程序,首先要new一个ApplicationClass 实例,并在最后将此实例释放。
ApplicationClass xlsApp = new ApplicationClass(); // 1. 创建Excel应用程序对象的一个实例,相当于我们从开始菜单打开Excel应用程序。
if (xlsApp == null)
{
//对此实例进行验证,如果为null则表示运行此代码的机器可能未安装Excel
}1. 打开现有的Excel文件
代码如下 | 复制代码 |
Workbook workbook = xlsApp.Workbooks.Open(excelFilePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); |
mySheet.Copy(Type.Missing, workbook.Sheets[1]); //复制mySheet成一个新的sheet页,复制完后的名称是mySheet页名称后加一个(2),这里就是testsheet(2),复制完后,Worksheet的数量增加一个注意
这里Copy方法的两个参数,指是的复制出来新的sheet页是在指定sheet页的前面还是后面,上面的例子就是指复制的sheet页在第一个sheet页的后面。
3.删除sheet页
代码如下 | 复制代码 |
xlsApp.DisplayAlerts = false; //如果想删除某个sheet页,首先要将此项设为fasle。
workbook.Saved = true; workbook.Close(true, Type.Missing, Type.Missing); /// <summary> if (xlApp == null) |
如果要在excel中插入图片,我们需要把代码加入一行即可,如下所示
代码如下 | 复制代码 |
protected void ExportExcel(DataTable dt) if (xlApp == null) public void GenerateExcel() |
运行结果如下所示:
其中如下代码的作用是
代码如下 | 复制代码 |
worksheet.Shapes.AddPicture("C:\Users\spring\Desktop\1.gif", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 100, 200, 200, 300);在Excel的指定位置加入图片 worksheet.Shapes.AddTextEffect(Microsoft.Office.Core.MsoPresetTextEffect.msoTextEffect1, "123456", "Red", 15, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, 150, 200); |
在Excel的指定位置加入文本框,和里面的内容.
我们可以这样来设计一个ExcelBase的基类:
先创建一个ExcelBE.cs:
代码如下 | 复制代码 |
public ExcelBE(int row, int col, string text, string startCell, string endCell, string interiorColor, bool isMerge, int size, string fontColor, string format) public ExcelBE() public int Row public int Col public string Text public string StartCell public string EndCell public string InteriorColor public bool IsMerge public int Size public string FontColor public string Formart } |
接下来创建ExcelBase.cs:
代码如下 | 复制代码 |
public class ExcelBase public ExcelBase() public void createDoc() public void InsertData(ExcelBE be) private int GetColorValue(string interiorColor) default: |
调用的代码如下:
代码如下 | 复制代码 |
private void btnRun_Click(object sender, EventArgs e) } |
相关文章
- 【原创】开源Math.NET基础数学类库使用(17)C#计算矩阵条件数
- C#.NET将数组导入Excel源代码
- C# SerializableDictionary序列化/反序列化
- Win10系列:C#应用控件基础20
- C#.NET常见问题(FAQ)-如何把定义存放类实例的数组
- C#.NET常见问题(FAQ)-在VS程序如何取消.vshost的进程
- C#.NET 如何快速输入一个对象事件对应的方法
- C# .NET想要另存一个项目,sln文件丢了怎么办
- .NET(C#) Internals: as a developer, .net framework in my eyes
- .NET、C#和ASP.NET三者之间的区别
- C#编程总结(三)线程同步
- C# 怎么检测string字符串中有哪些数字?
- C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
- C#获取外网IP、本机MAC地址及Ping的实现
- C# 继承
- C# 枚举操作工具类
- C#.Net操作注册表RegistryKey
- 常见掌握类库与工具体系图 艾提拉总结 Atitit 文档资料处理重要类库与工具体系树 Configuration yml xml jsoup Net apache commons net
- Atitit.收银机小票打印功能的设计 java php c#.net版本
- Atitit. servlet 与 IHttpHandler ashx listen 和HttpModule的区别与联系 原理理论 架构设计 实现机制 java php c#.net js javascript c++ python
- Atitit。D&D drag&drop拖拽功能c#.net java swing的对比与实现总结
- c#获取基类或接口的所有继承类方法
- C# 获取农历日期
- c# Thread.Join()方法讲解
- C# .net 子类序列化时无法识别的解决办法
- C# 显示一个“Hello world!”
- c#数组和集合
- C#上位机——串口助手高级02