C#操作Excel

22 篇文章 0 订阅

在GIS数据处理中,经常遇到与Excel的交互,这里进行简单的总结。

Excel行列号就像是编辑中的二维数据组,操作Excel相当于操作二维数组。遍历、循环、取值、赋值……

1.添加引用
添加引用也有版本的问题,我们都知道每一代office除了有一个以年份命名的销售名称(2003、2007、2010等)外,还有一个类似于内部版本号的代号,是以数字递增的。

office 2003:office 11
office 2007:office 12
office 2010:office 14(听说13不吉利,没有office 13)
office 2013:office 15

在这里插入图片描述

我添加的是14版,在office2013和office2010环境下测试可用。

1using Microsoft.Office.Interop.Excel
2.认识对象
Excel对象模型包括了128个不同的对象,其中用得比较多的就四个:

(1) Application对象。Application对象处于Excel对象层次结构的顶层,表示Excel自身的运行环境。

(2) Workbook对象。Workbook对象直接地处于Application对象的下层,表示一个Excel工作薄文件。

(3) Worksheet对象。Worksheet对象包含于Workbook对象,表示一个Excel工作表。

(4) Range对象。Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。

3.基本操作
一般在操作中,都不开这下面四个:

Excel.Application oApp;
Excel._Workbook oWbook;
Excel._Worksheet oWSheet;
Excel.Range oRng;
//创建Excel对象
oApp = new Excel.Application();
oApp.Visible = true;    //是否可见

创建工作簿、工作表

//创建一个新的工作簿、工作表

oWbook = (Excel._Workbook)(oApp.Workbooks.Add(Missing.Value));
oWSheet = (Excel._Worksheet)oWbook.ActiveSheet;

取值

//获取单元格的值
sheet = ((Microsoft.Office.Interop.Excel.Range)oWSheet.Cells[1, 2]).Text;
  写值

//设置某行某列的值,从1开始
oWSheet.Cells[1, 1] = "First Name";
oWSheet.Cells[1, 2] = "Last Name";

设置格式

//设置多个单元格格式
oWSheet.get_Range("A1", "D1").Font.Bold = true;
oWSheet.get_Range("A1", "D1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
  保存
//保存工作簿
oWbook.Save();
oWbook.SaveAs(filePath + name, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

下面是一些常用的代码:
1、 显示当前窗口:ExcelApp.Visible := True;
2、 更改 Excel 标题栏:ExcelApp.Caption := ‘标题内容’;
3、 添加新工作簿:ExcelApp.WorkBooks.Add;
4、 设置第2个工作表为活动工作表:ExcelApp.WorkSheets[2].Activate;
5、 给单元格赋值:ExcelApp.Cells[1,1].Value := ‘第一行第一列’;
6、 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
7、 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
8、文字水平居中:Excelid.worksheets[1].Rows[1].HorizontalAlignment := $FFFFEFF4;
文字垂直居中:Excelid.worksheets[1].Rows[1].VerticalAlignment := KaTeX parse error: Undefined control sequence: \Excel at position 1142: …App.SaveAs( 'C:\̲E̲x̲c̲e̲l̲\Demo1.xls' ); …+IntToStr(BeginRow) +:$ + IntToStr(EndRow) +’);
注:声明变量ARow, ACol: Integer;
29、打开已经存在的Excel文件: ExcelApplication1.Workbooks.Open (c:\a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);

空的时候,还是把它写个类。

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值