目录结构:

contents structure [+]

1.Microsoft.Office.Interop.Excel.Application

这.net 库自带的处理Excel的API,不过想要使用该类,电脑上必须已经安装上了Microsoft Office。

  1. static void Main(string[] args)
  2. {
  3. //创建Application的对象
  4. Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
  5. if (excel == null)
  6. {
  7. MessageBox.Show("无法创建Excel对象,可能您的电脑未安装Excel");
  8. return;
  9. }
  10.  
  11. //获得 工作簿集合
  12. Microsoft.Office.Interop.Excel.Workbooks workbooks = excel.Workbooks;
  13. //向工作簿集合中,添加一个空白工作簿,并且获得添加工作簿的引用
  14. Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
  15.  
  16. //获得 工作表
  17. Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[];
  18.  
  19. //得到Range对象
  20. Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)workSheet.Cells[, ];
  21. range.Value2 = "hello";
  22.  
  23. //保存
  24. workbook.SaveAs(@"C:\Users\Administrator\Desktop\a.xlsx");
  25. }

创建工作簿实例(Workbook)时,除了使用Add方法,还可以使用Open方法,从本地Excel文件创建Workbook实例,例如:

  1. Workbook workbook=workbooks.Open(@"excel文件", 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);

使用系统自带的API操作Excel文件,过于繁琐,下面介绍使用Aspose.cell插件。

2.Aspose.cell插件

Asponse.cell是一个第三方插件,它解决了.net自带API操作Excel的繁琐。创建Aspose.cell.Workbook对象,Aspose.cell插件提供了6中Workbook的构造函数:

  1. public Workbook();//创建默认的Workbook实例
  2. public Workbook(FileFormatType fileFormatType);//以指定的文件格式类型创建Workbook实例,例如Pdf,Xlsx,Html,SVG....
  3. public Workbook(Stream stream);//从指定的流中创建Workbook实例
  4. public Workbook(string file);//从指定的文件中创建Workbook实例
  5. public Workbook(Stream stream, LoadOptions loadOptions);//以指定的加载选项,从流中创建Workbook实例
  6. public Workbook(string file, LoadOptions loadOptions);//以指定的加载选项,从文件中创建Workbook实例

例如:

  1. Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();//创建工作簿
  2. Aspose.Cells.Worksheet workSheet=workbook.Worksheets[];//获得工作表

操作单元格

  1. //获得B1单元格
  2. Aspose.Cells.Cell cell = workSheet.Cells[,];//除了使用有参属性[int,int]获取单元格,还可以使用有参属性[String]获取,例如Cells["A1"]
  3. //设置单元格值
  4. cell.PutValue("word");
  5. //创建Style对象
  6. Aspose.Cells.Style style = new Aspose.Cells.Style();
  7. style.SetBorder(Aspose.Cells.BorderType.LeftBorder, Aspose.Cells.CellBorderType.Dotted, System.Drawing.Color.Red);//设置边框格式
  8. style.Font.Color = System.Drawing.Color.Green;//设置字体颜色
  9. style.Font.Size = ;//设置字体大小
  10. style.Font.Underline = Aspose.Cells.FontUnderlineType.Single;//设置下划线
  11. style.BackgroundColor = System.Drawing.Color.White;//设置背景颜色
  12. style.RotationAngle = ;//设置旋转角度
  13. //设置单元格样式
  14. cell.SetStyle(style);

保存
既可以保存到本地,也可以保存到流中

  1. workbook.Save("地址");
  2. Stream stream= workbook.SaveToStream();

在Web应用中,有时候需要让用户下载文件,那么这时候可以把流设置到响应流中,例如:

  1. FileName += "_"+DateTime.Now.ToString("yyyyMMddHHmmss")+".xls";
  2. HttpResponseBase response = (HttpResponseBase)HttpContext.Response;
  3. response.Buffer = true;
  4. response.Charset = "utf-8";
  5. response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
  6. response.ContentEncoding = System.Text.Encoding.UTF8;
  7. response.ContentType = "application/ms-excel";
  8. response.BinaryWrite(workbook.SaveToStream().ToArray());
  9. response.End();

例如下面是操作Excel的简单案例:

  1. //创建 工作簿 Workbook对象
  2. Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(@"读取文件的路径");
  3. //获得工作表
  4. Aspose.Cells.Worksheet workSheet=workbook.Worksheets[];
  5. //获得0,0单元格
  6. Aspose.Cells.Cell cell = workSheet.Cells[,];
  7. //设置单元格值
  8. Console.WriteLine(cell.Value);
  9. cell.PutValue("你好");
  10. //创建Style对象
  11. Aspose.Cells.Style style = new Aspose.Cells.Style();
  12. style.Font.Color = System.Drawing.Color.Green;//设置字体颜色
  13. //设置单元格样式
  14. cell.SetStyle(style);
  15. workbook.Save(@"保存文件的路径");

【C#】C#对Excel表的操作的更多相关文章

  1. Python_对Excel表进行操作

    1.使用Python统计Excel表中的行数 import xlrd # 计算一个工作簿中所有Sheet表的行数 def count_book(work_book): workbook = xlrd. ...

  2. C#使用第三方组件Epplus操作Excel表

    Epplus操作Excel基础详解 1.什么是Epplus Epplus是一个使用Open Office XML文件格式,能读写Excel2007/2010文件的开源组件,在导出Excel的时候不需要 ...

  3. Python+Selenium进行UI自动化测试项目中,常用的小技巧3:写入excel表(python,xlsxwriter)

    我们在项目中可能用到excel表生成,下面的代码就是对excel表的操作: import xlsxwriter import datetime class write_excel(): def __i ...

  4. ASP.NET 导出gridview中的数据到Excel表中,并对指定单元格换行操作

    1. 使用NPOI读取及生成excel表. (1)导出Click事件: 获取DataTable; 给文件加文件名: string xlsxName = "xxx_" + DateT ...

  5. excel数据表透视操作

    虽然作为开发人员,很少用到office,但是在工作的时候,特别是做财务模块,或多或少都会用到excel处理数据,对比数据.比如说vlookup函数,数据透视表这些.vlookup函数我用得很熟练,但数 ...

  6. java封装实现Excel建表读写操作

    对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面.小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Exce ...

  7. python中Excel表操作

    python中关于excel表个的操作 使用 python中的xlwt和xlrd模块进行操作 # 2003之前:Excel:xls# 2003之后:Excel:xlsx# xlrd:读取的模块:xls ...

  8. 个人永久性免费-Excel催化剂功能第30波-工作表快捷操作(批量创建、命名、排序、工作表目录)

    日常使用Excel过程中,最多的操作无外乎单元格和工作表的操作,单元格的操作在前面已经有详细的辅助功能提供,此篇提供工作表相关的操作.这两项的操作若能有提速,日常大量的工作叠加起来真是省下不少时间. ...

  9. 用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中

    现代生活中,我们很难不与excel表打交道,excel表有着易学易用的优点,只是当表中数据量很大,我们又需要从其他表册中复制粘贴一些数据(比如身份证号)的时候,我们会越来越倦怠,毕竟我们不是机器,没法 ...

随机推荐

  1. 一篇笔记带你梳理JVM工作原理

    首先要了解的 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用, ...

  2. 存储过程,存储函数(Oracle)

    存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 存储过程和存储函数的区别? 存储函数:可以通过return 语句返回函数值. 存储过程:不能 除此之外我们可以认为 ...

  3. Codeforces 585D Lizard Era: Beginning

    Lizard Era: Beginning 折半之后搜就完事了, 直接存string字符串卡空间, 随便卡卡空间吧. #include<bits/stdc++.h> #define LL ...

  4. 015 在大数据中,关于mapreduce的粗略优化,以及mapreduce的处理过程解释

    使用的案例是wordcountmapreduce的程序演示 一: 1.源程序 2.优化的切入点 3.优化的部分代码 二:wordcount的处理过程 1.重点 一个块对应一个map任务. 而做单词统计 ...

  5. POJ 1182 食物链 【带权并查集】

    <题目链接> 题目大意: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我 ...

  6. P1007 独木桥

    P1007 独木桥最少的话是同时朝一个方向,最多可以这样考虑,碰头时不是转向吗?它等价于穿过另一个人,也就是两个人交换,最后取最大值就好了. #include<iostream> usin ...

  7. iOS企业版应用发布(部分低版本系统)无法安装到最新版app的问题-缓存导致

    通过自己网站发布企业版app时,经过测试发现在部分已安装过旧版app的低版本ios手机存在这样的问题 :扫码覆盖安装新版app,安装到的仍然是就版本的app.这样就导致部分用户一直无法更新到最新版本. ...

  8. 学机器学习,不会数据分析怎么行——数据可视化分析(matplotlib)

    前言 前面两篇文章介绍了 python 中两大模块 pandas 和 numpy 的一些基本使用方法,然而,仅仅会处理数据还是不够的,我们需要学会怎么分析,毫无疑问,利用图表对数据进行分析是最容易的, ...

  9. Loogn.OrmLite文档

    Getting Started 一. 引入Loogn.OrmLite PM> Install-Package Loogn.OrmLite 二.引入名称空间 using Loogn.OrmLite ...

  10. Springboot中实现策略模式+工厂模式

    策略模式和工厂模式相信大家都比较熟悉,但是大家有没有在springboot中实现策略和工厂模式? 具体策略模式和工厂模式的UML我就不给出来了,使用这个这两个模式主要是防止程序中出现大量的IF ELS ...