【C#】C#对Excel表的操作
目录结构:
1.Microsoft.Office.Interop.Excel.Application
这.net 库自带的处理Excel的API,不过想要使用该类,电脑上必须已经安装上了Microsoft Office。
static void Main(string[] args)
{
//创建Application的对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
if (excel == null)
{
MessageBox.Show("无法创建Excel对象,可能您的电脑未安装Excel");
return;
} //获得 工作簿集合
Microsoft.Office.Interop.Excel.Workbooks workbooks = excel.Workbooks;
//向工作簿集合中,添加一个空白工作簿,并且获得添加工作簿的引用
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); //获得 工作表
Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[]; //得到Range对象
Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)workSheet.Cells[, ];
range.Value2 = "hello"; //保存
workbook.SaveAs(@"C:\Users\Administrator\Desktop\a.xlsx");
}
创建工作簿实例(Workbook)时,除了使用Add方法,还可以使用Open方法,从本地Excel文件创建Workbook实例,例如:
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的构造函数:
public Workbook();//创建默认的Workbook实例
public Workbook(FileFormatType fileFormatType);//以指定的文件格式类型创建Workbook实例,例如Pdf,Xlsx,Html,SVG....
public Workbook(Stream stream);//从指定的流中创建Workbook实例
public Workbook(string file);//从指定的文件中创建Workbook实例
public Workbook(Stream stream, LoadOptions loadOptions);//以指定的加载选项,从流中创建Workbook实例
public Workbook(string file, LoadOptions loadOptions);//以指定的加载选项,从文件中创建Workbook实例
例如:
Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();//创建工作簿
Aspose.Cells.Worksheet workSheet=workbook.Worksheets[];//获得工作表
操作单元格
//获得B1单元格
Aspose.Cells.Cell cell = workSheet.Cells[,];//除了使用有参属性[int,int]获取单元格,还可以使用有参属性[String]获取,例如Cells["A1"]
//设置单元格值
cell.PutValue("word");
//创建Style对象
Aspose.Cells.Style style = new Aspose.Cells.Style();
style.SetBorder(Aspose.Cells.BorderType.LeftBorder, Aspose.Cells.CellBorderType.Dotted, System.Drawing.Color.Red);//设置边框格式
style.Font.Color = System.Drawing.Color.Green;//设置字体颜色
style.Font.Size = ;//设置字体大小
style.Font.Underline = Aspose.Cells.FontUnderlineType.Single;//设置下划线
style.BackgroundColor = System.Drawing.Color.White;//设置背景颜色
style.RotationAngle = ;//设置旋转角度
//设置单元格样式
cell.SetStyle(style);
保存
既可以保存到本地,也可以保存到流中
workbook.Save("地址");
Stream stream= workbook.SaveToStream();
在Web应用中,有时候需要让用户下载文件,那么这时候可以把流设置到响应流中,例如:
FileName += "_"+DateTime.Now.ToString("yyyyMMddHHmmss")+".xls";
HttpResponseBase response = (HttpResponseBase)HttpContext.Response;
response.Buffer = true;
response.Charset = "utf-8";
response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
response.ContentEncoding = System.Text.Encoding.UTF8;
response.ContentType = "application/ms-excel";
response.BinaryWrite(workbook.SaveToStream().ToArray());
response.End();
例如下面是操作Excel的简单案例:
//创建 工作簿 Workbook对象
Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(@"读取文件的路径");
//获得工作表
Aspose.Cells.Worksheet workSheet=workbook.Worksheets[];
//获得0,0单元格
Aspose.Cells.Cell cell = workSheet.Cells[,];
//设置单元格值
Console.WriteLine(cell.Value);
cell.PutValue("你好");
//创建Style对象
Aspose.Cells.Style style = new Aspose.Cells.Style();
style.Font.Color = System.Drawing.Color.Green;//设置字体颜色
//设置单元格样式
cell.SetStyle(style);
workbook.Save(@"保存文件的路径");
【C#】C#对Excel表的操作的更多相关文章
- Python_对Excel表进行操作
1.使用Python统计Excel表中的行数 import xlrd # 计算一个工作簿中所有Sheet表的行数 def count_book(work_book): workbook = xlrd. ...
- C#使用第三方组件Epplus操作Excel表
Epplus操作Excel基础详解 1.什么是Epplus Epplus是一个使用Open Office XML文件格式,能读写Excel2007/2010文件的开源组件,在导出Excel的时候不需要 ...
- Python+Selenium进行UI自动化测试项目中,常用的小技巧3:写入excel表(python,xlsxwriter)
我们在项目中可能用到excel表生成,下面的代码就是对excel表的操作: import xlsxwriter import datetime class write_excel(): def __i ...
- ASP.NET 导出gridview中的数据到Excel表中,并对指定单元格换行操作
1. 使用NPOI读取及生成excel表. (1)导出Click事件: 获取DataTable; 给文件加文件名: string xlsxName = "xxx_" + DateT ...
- excel数据表透视操作
虽然作为开发人员,很少用到office,但是在工作的时候,特别是做财务模块,或多或少都会用到excel处理数据,对比数据.比如说vlookup函数,数据透视表这些.vlookup函数我用得很熟练,但数 ...
- java封装实现Excel建表读写操作
对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面.小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Exce ...
- python中Excel表操作
python中关于excel表个的操作 使用 python中的xlwt和xlrd模块进行操作 # 2003之前:Excel:xls# 2003之后:Excel:xlsx# xlrd:读取的模块:xls ...
- 个人永久性免费-Excel催化剂功能第30波-工作表快捷操作(批量创建、命名、排序、工作表目录)
日常使用Excel过程中,最多的操作无外乎单元格和工作表的操作,单元格的操作在前面已经有详细的辅助功能提供,此篇提供工作表相关的操作.这两项的操作若能有提速,日常大量的工作叠加起来真是省下不少时间. ...
- 用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中
现代生活中,我们很难不与excel表打交道,excel表有着易学易用的优点,只是当表中数据量很大,我们又需要从其他表册中复制粘贴一些数据(比如身份证号)的时候,我们会越来越倦怠,毕竟我们不是机器,没法 ...
随机推荐
- poj 1125 谣言传播 Floyd 模板题
假如有3个点 点1到点2要5分钟 点1到点3要3分钟 那么5分钟的时间可以传遍全图 所以要先找一个点到其他点的最长时间 再从最长的时间里找出最小值 Sample Input 3 // 结点数2 2 4 ...
- 【Restful】三分钟彻底了解Restful最佳实践
REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等 ...
- Python 可命名元祖
import collections MytupleClass = collections.namedtuple('MytupleClass',['x','y','z']) obj = Mytuple ...
- Gitlab管理用户、组、权限(一)
&& 内容: 添加用户 创建组 用户权限 保护主要分支 配置项目的可见性 移除用户 一. 添加用户 1. 用root 管理员登陆. 2. 点击管理区域 3. 点击New User 4. ...
- BZOJ1146 [CTSC2008]网络管理Network 树链剖分 主席树 树状数组
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1146 题意概括 在一棵树上,每一个点一个权值. 有两种操作: 1.单点修改 2.询问两点之间的树链 ...
- P1197 [JSOI2008]星球大战 并查集 反向
题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系. 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过特殊的以太隧 ...
- 【noip模拟赛5】任务分配 降维dp
描述 现有n个任务,要交给A和B完成.每个任务给A或给B完成,所需的时间分别为ai和bi.问他们完成所有的任务至少要多少时间. 输入 第一行一个正整数n,表示有n个任务.接下来有n行,每行两个正整数a ...
- CPU个数、CPU核心数、CPU线程数
CPU个数.CPU核心数.CPU线程数 我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之 ...
- Couple number
P1348 Couple number 我其实找规律了的,然后也没仔细分析,这个题多巧妙. C=a^2-b^2=(a+b)(a-b) 对于任意a而言,加减同一个数得到的数的奇偶性相同,故c=奇数或4的 ...
- Angular 个人深究(五)【外部包引用 Leaflet 简单实用】
Leaflet 使用 最近在Angular项目中,用到了地图,由于种种原因放弃了百度地图api使用,最后选择了leaflet,简单介绍一下. 介绍: Leaflet 是一个为移动设备设计的交互式地图的 ...