C#操作Excel总结.docx

上传人:b****4 文档编号:12012371 上传时间:2023-04-16 格式:DOCX 页数:8 大小:16.78KB
下载 相关 举报
C#操作Excel总结.docx_第1页
第1页 / 共8页
C#操作Excel总结.docx_第2页
第2页 / 共8页
C#操作Excel总结.docx_第3页
第3页 / 共8页
C#操作Excel总结.docx_第4页
第4页 / 共8页
C#操作Excel总结.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C#操作Excel总结.docx

《C#操作Excel总结.docx》由会员分享,可在线阅读,更多相关《C#操作Excel总结.docx(8页珍藏版)》请在冰豆网上搜索。

C#操作Excel总结.docx

C#操作Excel总结

C#操作Excel总结

1usingMicrosoft.Office.Core;

2usingMicrosoft.Office.Interop.Excel;

3usingSystem.IO;

4usingSystem.Reflection;

1.如何打开已有excel文档,或者创建一个新的excel文档

1Applicationapp=newApplication();

2Workbookswbks=app.Workbooks;

3_Workbook_wbk=wbks.Add(xxx);

若打开已有excel,把“xxx”替换成该excel的文件路径;

注:

若新建一个excel文档,“xxx”替换成true即可;不过这里新建的excel文档默认只有一个sheet。

2.取得、删除和添加sheet

1Sheetsshs=_wbk.Sheets;

2.1取得:

1//i是要取得的sheet的index

2_Worksheet_wsh=(_Worksheet)shs.get_Item(i)

2.2删除:

1//删除sheet必须的设置

2app.DisplayAlerts=false;

3_wsh.Delete();

2.3添加:

1//a(before),b(after):

确定添加位置;c:

数目;d:

类型

2app.Worksheets.Add(a,b,c,d);

2.4sheet的重命名

1_wsh.Name="xxx";

3.删除行和列

3.1删除行:

1((Range)_wsh.Rows[3,Missing.Value]).Delete(XlDeleteShiftDirection.xlShiftUp);

3.2删除列:

1_wsh.get_Range(

2_wsh.Cells[1,2],

3_wsh.Cells[_wsh.Rows.Count,2]).Delete(XlDeleteShiftDirection.xlShiftToLeft

4);

4.添加行和列

4.1添加行:

1((Range)_wsh.Rows[11,Missing.Value])

2.Insert(Missing.Value,XlInsertFormatOrigin.xlFormatFromLeftOrAbove);

4.2添加列:

1_wsh.get_Range(

2_wsh.Cells[1,1],_wsh.Cells[_wsh.Rows.Count,1])

3.Insert(Missing.Value,XlInsertShiftDirection.xlShiftToRight);

5.单元格操作

5.1单元格的取得

1//获得单元格对象

2_wsh.Cells[row,cell]

5.2设置公式

1//在对应的单元格输入公式即可

2_wsh.Cells[row,cell]="=Sum(A1/B1)";

5.3合并单元格

1((Range)_wsh.Rows[1,Missing.Value]).Merge(Missing.Value);

5.4设置行高和列宽

1((Range)_wsh.Rows[3,Missing.Value]).RowHeight=5;

2((Range)_wsh.Rows[3,Missing.Value]).ColumnWidth=5;

5.5设置单元格颜色颜色共有56中,详情请参照附录的[颜色对照表]

1((Range)_wsh.Rows[1,Missing.Value]).Interior.ColorIndex=3;

5.6设置字号

1((Range)_wsh.Cells[1,"B"]).Font.Size=8;

5.7是否设置粗体

1((Range)_wsh.Rows[1,Missing.Value]).Font.Bold=false;

5.8单元格/区域、水平垂直居中

1((Range)_wsh.Cells[2,1]).HorizontalAlignment=XlVAlign.xlVAlignCenter;

5.9设置区域边框

1((Range)_wsh.Cells[3,3]).Borders.LineStyle=3;

5.10设置边框的上、下、左、右线条

01//左

02_wsh.get_Range(

03_wsh.Cells[2,1],_wsh.Cells[2,2])

04.Borders[XlBordersIndex.xlEdgeLeft].Weight=XlBorderWeight.xlThick;//

05

06//右

07_wsh.get_Range(

08_wsh.Cells[2,1],_wsh.Cells[2,2])

09.Borders[XlBordersIndex.xlEdgeRight].Weight=XlBorderWeight.xlThick;//

10

11//上

12_wsh.get_Range(

13_wsh.Cells[2,1],_wsh.Cells[2,2])

14.Borders[XlBordersIndex.xlEdgeTop].Weight=XlBorderWeight.xlThick;//下

15

16//下

17_wsh.get_Range(

18_wsh.Cells[2,1],_wsh.Cells[2,2])

19.Borders[XlBordersIndex.xlEdgeBottom].Weight=XlBorderWeight.xlThick;

6.指定区域的复制

01_Worksheet_wsh=(_Worksheet)shs.get_Item

(1);//复制选中区域的内容

02

03Rangerange=_wsh.get_Range(_wsh.Cells[7,1],_wsh.Cells[10,_wsh.Columns.Count]);

04

05range.Select();

06range.Copy(Type.Missing);

07

08//选中粘贴的起始位置

09Rangetest=((Range)_wsh.Cells[11,1]);

10test.Select();

11

12//屏蔽掉Alert,默认确定粘贴

13app.DisplayAlerts=false;

14test.Parse(Missing.Value,Missing.Value);

注:

Type.Missing和Missing.Value,在excel的操作中被视为某些参数的默认值,他们起到的作用很多时候是形式补足参数

7.excel文件的保存,及后续处理

7.1文件保存

1//屏蔽掉系统跳出的Alert

2app.AlertBeforeOverwriting=false;

3

4//保存到指定目录

5SaveAs(filePath,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);

注:

这个地方只能采用该方法保存,不然在指定路径下保存文件外,在我的文档中也会生成一个对应的副本

7.2后续处理:

退出和释放

1//_wbk.Close(null,null,null);

2//wbks.Close();

3app.Quit();

4

5//释放掉多余的excel进程

6System.Runtime.InteropServices.Marshal.ReleaseComObject(app);

7app=null;

说明:

在application关闭的过程中,通常我们有两种方案:

#直接退出app

#先关闭workbook,然后关闭workbooks,最后在退出app

鉴于这两种方式,或许本质上是一样的(这点需要证明),但是依据我们软件开发的原则:

哪里需要哪里声明,哪里结束哪里释放回收。

既然在直接退出app的时候,我们不清楚workbook和workbooks具体在什么时间关闭,不如在结束的时候直接手动关闭,这样做可以做到资源的快速直接回收;

所以,建议采用先关闭workbook,然后关闭workbooks,最后在退出app。

8.关于单元格设置域和取得域里需要的数据

8.1若单元格已经设置为下拉框

1//这里的“1,2,3”设置的就是下拉框的值

2((Range)_wsh.Cells[2,1])

3.Validation.Modify(XlDVType.xlValidateList,XlDVAlertStyle.xlValidAlertStop,Type.Missing,"1,2,3",Type.Missing);

8.2若单元格还没有设置为下拉框的形式

1((Range)_wsh.Cells[2,1])

2.Validation.Add(XlDVType.xlValidateList,XlDVAlertStyle.xlValidAlertStop,Type.Missing,"1,2,3",Type.Missing);

8.3取得下拉框域的值

1stringstrValue=((Range)_wsh.Cells[2,1]).Validation.Formula1;

注:

若在excel模板中通过有效性设定了下拉框的值,strValue得到的将会是excel里的公式,需将其转换,取得strValue后,可以根据其索引得到你需要的数值;

9.隐藏行和隐藏列

9.1隐藏行

1_wsh.get_Range(_wsh.Cells[19,1],_wsh.Cells[22,1]).EntireRow.Hidden=true;

9.2隐藏列

1_wsh.get_Range(_wsh.Cells[1,1],_wsh.Cells[_wsh.Rows.Count,1])

2.EntireColumn.Hidden=true;

本篇文章来源于:

开发学院原文链接:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1