【ArcGIS Pro二次开发】(21):Excel文件操作方法汇总

在本系列笔记的第12篇中,记录了txt文件和Excel文件的读写,详见:

【ArcGIS Pro二次开发】(12):txt文件和Excel文件的读写

在那篇文章里,只简单记录了txt文件和Excel文件的读写,近些天体验了Excel文件的操作,内容比较多,也比较复杂,所以这里再单独记一篇。

Excel文件打开和关闭这些框架代码就不再写了,可以看上面的帖子,这里就重点记录其它关键操作的核心代码,也不另外再放工程文件。

PS:以下操作都要用到【Interop.Microsoft.Office.Interop.Excel】,确保安装并引用。


1、获取单元格的值

分2种方式,一种是按第几行第几列,另一种是按【字母+数字】,如B5:

string value2 = worksheet.Cells[5, 2].Value.ToString();   // 取第5行第2列单元格的值
string value = worksheet.Range["B5"].Value.ToString();    // 取B5单元格的值

2、修改单元格的值

同样分2种方式写入单元格的值:

worksheet.Cells[5,2].Value = "标记内容";      // 设置第5行第2列单元格的值
worksheet.Range["B5"].Value = "标记内容";     // 设置B5单元格的值

还有另一种方法,直接清除单元格的值:

worksheet.Cells[5, 2].ClearContents();    // 清除单元格的值

3、删除行和列

worksheet.Rows[10].Delete();       // 删除行
worksheet.Columns[6].Delete();     // 删除列

4、插入行和列

worksheet.Rows[8].Insert();       // 插入行
worksheet.Columns[8].Insert();    // 插入列

5、修改行高和列宽

worksheet.Rows[10].RowHeight = 40;          // 修改行高
worksheet.Columns[10].ColumnWidth  = 40;    // 修改列宽

6、设置单元格的字体、颜色、加粗、下划线等

worksheet.Cells[14, 4].Font.Name = "宋体";                       // 字体
worksheet.Cells[14, 4].Font.Color= System.Drawing.Color.Red;    // 颜色
worksheet.Cells[14, 4].Font.Bold = true;                        // 加粗
worksheet.Cells[14, 4].Font.UnderLine = true;                   // 下划线

7、将指定工作表设置为活动工作表

worksheet.Activate();

8、在Excel文件里添加一个新的表,并命名

Worksheet newWorksheet = workbook.Worksheets.Add(); // 添加新工作表
newWorksheet.Name = "new"; // 设置工作表的名称

9、合并单元格

合并单元格的时候,Excel会弹出一个警告框,提示你是否要保留左上角单元格的值,这个功能在实际操作Excel的时候没什么,但是在工具运行时就很讨厌,会打断进程,所以这里【将警告提示设置为false】:

worksheet.Application.DisplayAlerts = false;      // 禁用警告提示
Range mergeRange = worksheet.Range["F5:G6"]; // 获取要合并的单元格范围
mergeRange.Merge(); // 合并单元格

10、取消合并单元格

Range mergeRange = worksheet.Range["F1:G2"]; // 获取要取消合并的单元格范围
mergeRange.UnMerge();   // 取消单元格合并

11、获取工作表的总行数和总列数

先通过获取工作表中的活动区域,再获取总行数和总列数:

Range usedRange = worksheet.UsedRange;       // 获取工作表中使用的区域
int rowCount = usedRange.Rows.Count;         // 获取总行数
int columnCount = usedRange.Columns.Count;   // 获取总列数

12、将指定范围的单元格内容复制粘贴到另一个位置

先通过Copy()方法将内容复制到剪贴板,再通过PasteSpecial()方法粘贴到指定的位置:

Range copyRange = worksheet.Range["B3:G7"];    // 选择要复制的单元格范围  
copyRange.Copy();    // 复制单元格范围到剪贴板
Range pasteRange = worksheet.Range["B8"];    // 选择要粘贴的单元格
// 将剪贴板中的内容粘贴到指定单元格
pasteRange.PasteSpecial(XlPasteType.xlPasteAll, XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

规划GIS会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值