seo网站外包公司,苏州代做淘宝网站,天津企业网络建站,富顺住房和城乡建设厅网站初级代码游戏的专栏介绍与文章目录-CSDN博客
我的github#xff1a;codetoys#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。
这些代码大部分以Linux为目标但部分代码是纯C的#xff0c;可以在任何平台上使用。
源码指引#xff1a;github源…初级代码游戏的专栏介绍与文章目录-CSDN博客
我的githubcodetoys所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。
这些代码大部分以Linux为目标但部分代码是纯C的可以在任何平台上使用。
源码指引github源码指引_初级代码游戏的博客-CSDN博客 前一篇VSTOC#Excel开发2Excel对象模型和基本操作-CSDN博客 前一篇我们已经知道可以获取行和列的集合并得到行和列的个数但是还没有注意到行和列竟然是Range对象。什么都是Range这一点埋下了很多坑。 本篇我们来设置列宽和行高。
目录
一、确认UsedRange
1.1 编写测试代码
2.2 Range的几个属性
2.3 运行测试
二、设置列宽和行高
2.1 编写测试代码
2.2 Range相关的属性
2.3 WorkSheet获取行和列
2.4 运行测试
三、自动调整列宽和行高 一、确认UsedRange
1.1 编写测试代码 我们已经知道UsedRange是用到的范围但是没有内容的单元格算不算呢 我们来用程序验证一下就像第一篇的操作一样先增加一个按钮“button2” 在设计器双击按钮生成按钮的事件代码然后添加内容如下 private void button2_Click(object sender, RibbonControlEventArgs e){string str 开始操作。。。。。。\n;try{Range usedRange Globals.ThisAddIn.Application.ActiveSheet.UsedRange;str UsedRange usedRange.Address \n;str UsedRange.Column usedRange.Column \n;str UsedRange.Columns.Count usedRange.Columns.Count \n;str UsedRange.Row usedRange.Row \n;str UsedRange.Rows.Count usedRange.Rows.Count \n;str 操作成功完成\n;}catch (Exception ex){MessageBox.Show(ex.ToString());}MessageBox.Show(str);}2.2 Range的几个属性
Address 单元格范围Column 第一个列的编号从1开始Columns 列的集合RangeColumns.Count即列的个数Row 第一个行的编号从1开始Rows.Count即行的个数
2.3 运行测试 编译运行新建空工作簿执行button2 虽然新建空工作簿什么都没有UsedRange返回的是第一个单元格。 然后我们执行一下button1这个按钮会自动生成一些内容然后再执行button2 现在显示的范围是A1到C10符合预期。 再选中左上角的几个单元格 按一下键盘的“del”键删除然后再执行buffton2 删掉的单元格没有出现在UsedRange里。 现在我们给一个空单元格加上边框 再执行button2 现在设置格式的格子也在UsedRange里面了。再改回无边框也没用还是在UsedRange里面。 实测拉宽列不会导致列出现在UsedRange里。
二、设置列宽和行高
2.1 编写测试代码 将刚才的代码增加点内容替换成如下代码 private void button2_Click(object sender, RibbonControlEventArgs e){string str 开始操作。。。。。。\n;try{Worksheet worksheet Globals.ThisAddIn.Application.ActiveSheet;Range usedRange worksheet.UsedRange;str UsedRange usedRange.Address \n;str UsedRange.Column usedRange.Column \n;str UsedRange.Columns.Count usedRange.Columns.Count \n;str UsedRange.Row usedRange.Row \n;str UsedRange.Rows.Count usedRange.Rows.Count \n;for (int i 0; i usedRange.Columns.Count; i){Range colum worksheet.Columns[usedRange.Column i];colum.ColumnWidth 15;}for (int i 0; i usedRange.Rows.Count; i){Range row worksheet.Rows[usedRange.Row i];row.RowHeight 30;}str 操作成功完成\n;}catch (Exception ex){MessageBox.Show(ex.ToString());}MessageBox.Show(str);}增加了设置列宽和行高的代码。
2.2 Range相关的属性
ColumnWidth 列宽以标准字符宽度为单位大概就是英文字符的意思吧设置时全部设置为同一值获取时如果不一致返回空这谁想出来的啊RowHeight 行高以像素为单位这又是谁想出来的啊宽和高的单位不一样坑是一样的如果多个行的行高不一致返回空
2.3 WorkSheet获取行和列
Columns[i]i是基于1的索引Rows[i]i是基于1的索引
2.4 运行测试 编译运行先执行button1再执行button2 看到有数据的区域的宽和高都修改了。
三、自动调整列宽和行高 使用Range的AutoFit方法即可按照官方文档是设置列宽“或”设置行高我直接替换上面的代码因此只是对单一列或单一行操作都是有效的。 代码如下 for (int i 0; i usedRange.Columns.Count; i){Range colum worksheet.Columns[usedRange.Column i];colum.ColumnWidth 15;//被下一句覆盖colum.AutoFit();}for (int i 0; i usedRange.Rows.Count; i){Range row worksheet.Rows[usedRange.Row i];row.RowHeight 30;//被下一句覆盖row.AutoFit();}动手拉拉宽度再执行能更清楚地看到效果。 这里是文档结束