c_操作ecel总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#操作Excel总结
Excel 基本操作
查看Excel中宏的方法如下:
ALT+F11
0. 导入命名空间:
usin
1
g
2using
3using ;
4using ;
1. 如何打开已有excel文档,或者创建一个新的excel文档
1Application app = new Application();
2Workbooks wbks = ;
3_Workbook _wbk = (xxx);
若打开已有excel,把“xxx”替换成该excel的文件路径;
注:若新建一个excel文档,“xxx”替换成true即可;不过这里新建的excel文档默认只有一个sheet。
2. 取得、删除和添加sheet
1Sheets shs = ;
取得:
1
删除行和列
删除行:
1((Range)[3, ]).Delete;
删除列:
1(
2[1, 2],
3[ 2]).Delete 4);
4. 添加行和列
添加行:
1((Range)[11, ]) 2.Insert, ;
添加列:
1(
2[1, 1], [ 1]) 3.Insert, ;
5. 单元格操作
单元格的取得
print
1
erge;
设置行高和列宽
view source
print
1((Range)[3, ]).RowHeight = 5;
2((Range)[3, ]).ColumnWidth = 5;
设置单元格颜色颜色共有56中,详情请参照附录的[颜色对照表] view source
print
1((Range)[1, ]). = 3;
设置字号
view source
print
1((Range)[1, "B"]). = 8;
是否设置粗体
view source
print
1((Range)[1, ]). = false;
单元格/区域、水平垂直居中
view source
print
1((Range)[2, 1]).HorizontalAlignment = ;设置区域边框
view source
print
1((Range)[3, 3]). = 3;
设置边框的上、下、左、右线条
view source
print
01
orders[].Weight = ;
orders[].Weight = ;
orders[].Weight = ;
Weight = ;
自动换
行
6. 指定区域的复制
view source
print
01_Worksheet _wsh = (_Worksheet)(1);
excel文件的保存,及后续处理
文件保存
view source
print
1
关于单元格设置域和取得域里需要的数据
若单元格已经设置为下拉框
view source
print
1
, , "1,2,3", ;
若单元格还没有设置为下拉框的形式
view source
print
1((Range)[2, 1])
2., , ,"1,2,3", ;
取得下拉框域的值
view source
print
1string strValue = ((Range)[2, 1]).;
注:若在excel模板中通过有效性设定了下拉框的值,strValue得到的将会是excel里的公式,需将其转换, 取得strValue后,可以根据其索引得到你需要的数值;
9. 隐藏行和隐藏列
隐藏行
view source
print
1[19, 1], [22, 1]). = true;
隐藏列
view source
print
1[1, 1], [ 1])
2. = true;
10.锁定指定区域
中插入图片
System;
;
4.
9. namespace ExcelReport
10. {
11. class InsertPicToExcel
12. {
13. /** public void Open()
17. {
18. ;
19. }
20.
21. /** public void Open(string TemplateFilePath)
26. {
27. m_objExcel = new ();
29. = false;
30. = false;
31.
32. if != "")
33. {
34. ("您的 Excel 版本不是(Office 2003),操作可能会出现问题。
");
35. ();
36. return;
37. }
38.
39. m_objBooks = ;
40. if )
41. {
42. m_objBook = (m_objOpt));
43. }
44. else
45. {
46. m_objBook = (TemplateFilePath, m_objOpt, m_objOpt, m_objOpt, m_objOpt,
47. m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt);
48. }
49. m_objSheets = ;
50. m_objSheet = (1));
51. += new (m_objExcel_WorkbookBeforeClose);
52. }
53.
54. private void m_objExcel_WorkbookBeforeClose m_objBooks, ref bool
_Cancel)
55. {
56. ("保存完毕!");
57. }
58.
59. /** public void
InsertPicture(string RangeName, string PicturePath)
66. {
67. m_objRange = (RangeName, m_objOpt);
68. ();
69. pics = (m_objOpt);
70. (PicturePath, m_objOpt);
71. }
72.
73. /** public void InsertPicture(string RangeName, string PicturePath, float PictuteWidth,
float PictureHeight)
82. {
83. m_objRange = (RangeName, m_objOpt);
84. ();
85. float PicLeft, PicTop;
86. PicLeft = ;
87. PicTop = ;
88. PicLeft, PicTop, PictuteWidth, PictureHeight);
97. }
98.
99. /** public void SaveFile(string OutputFilePath)
104. {
105. (OutputFilePath, m_objOpt, m_objOpt,
106. m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt,
m_objOpt, m_objOpt, m_objOpt);
108.
109. ();
110. }
111. /** private void Close()
115. {
116. (false, m_objOpt, m_objOpt);
117. ();
118. }
119.
120. /** public void Dispose()
124. {
125. ReleaseObj(m_objSheets);
126. ReleaseObj(m_objBook);
127. ReleaseObj(m_objBooks);
128. ReleaseObj(m_objExcel);
129. }
132. /** private void ReleaseObj(object o) 137. {
138. try
139. {
140. }
142. catch { }
143. finally { o = null; }
144. }
145.
146. private m_objExcel = null;
147. private m_objBooks = null;
148. private m_objBook = null;
149. private m_objSheets = null;
150. private m_objSheet = null;
151. private m_objRange = null;
152. private object m_objOpt = }
154.
155.}
156.
调用:
ipt = new InsertPicToExcel();
"B2", @"C:\");
"B18", @"C:\", 120, 80);
"C:\");
【Excel】行高和列宽单位的换算
默认情况下,Excel的行高为(19像素),列宽为(72像素),单位无法直接用毫米(mm)或厘米(cm)表示,需要换算,换算表如下。
======================================
像素磅英寸毫米厘米十二点活字
96 72 1 6
======================================
行高是以磅为单位
1个单位=1磅=4/3像素=(72)
1mm=个单位(72/)
列宽与EXCEL的标准字体有关
“帮助”中说——出现在“标准列宽”框中的数字为适合于单元格的标准字体的数字 0-9 的平均值。
【注解】
标准字体——是指“EXCEL”---“工具”---“选项”---“常规”中的标准字体。
当然与字的大小也有关,因为字体中,如0与1,其宽度有可能不一样,EXCEL是以“标准字体”的09这10个字符的宽度平均值为计量单位。
1 个单位列宽为多少磅可用VBA得到。
=Range("A1").Width/Columns(1).ColumnWidth
(当然A1不能是合并了的单元格)
如:简体OFFICE,默认标准字体(宋体12号)情况下
Range("A1").Width/Columns(1).ColumnWidth=
这样行高为,列宽为时,为2*2CM
1个单位列宽=
1mm=个单位列宽
在调整单元格行高和列宽时,如果觉得换算有些麻烦,不过有个简单的方法:
先插入一矩形或文本框,将其宽度设为10mm,移动使其左边界与表格线重合,然后调整单元格列宽使网络线与矩形的右边界重合。
也只能是近似的。
使用毫米或厘米表示Excel的行高和列宽单位
的行高和列宽单位无法用mm或cm表示。
需要计算。
在1024*768下,1CM约为38像素。
以此为基准,可计算并控制报表的行列位置。
行高是以磅为单位
1mm=磅
行高所使用单位为磅(1cm=磅),列宽使用单位为1/10英寸(既1个单位为
excel里的单位和cm(厘米)可以这样转换:
行高: 1毫米=个单位 1厘米=个单位 1个单位=毫米
列宽: 1毫米=个单位 1厘米=个单位 1个单位=毫米
3.列宽与EXCEL的标准字体有关
=====================
"帮助"中说-------
出现在“标准列宽”框中的数字为适合于单元格的标准字体的数字 0-9 的平均值。
=====================
注解:
标准字体------是指EXCEL---工具---选项---常规中的标准字体(当然与字大小也有关) 因为字体中,如,0与1其宽度有可能不一样,EXCEL是以"标准字体"的09这10个字符的平均值为计量单位.
1 个单位列宽为多少磅可用VBA得到。
=Range("A1").Width/Columns(1).ColumnWidth
(当然A1不能是合并了的单元格)
如:
简体OFFICE,默认标准字体(宋体12号)情况下Range("A1").Width/Columns(1).ColumnWidth= 这样行高为,列宽为时,为2*2CM。