c操作excel总结Word格式.docx
- 文档编号:16926021
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:22.12KB
c操作excel总结Word格式.docx
《c操作excel总结Word格式.docx》由会员分享,可在线阅读,更多相关《c操作excel总结Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
app.DisplayAlerts=false;
_wsh.Delete();
2.3添加:
//a(before),b(after):
确定添加位置;
c:
数目;
d:
类型
app.Worksheets.Add(a,b,c,d);
2.4sheet的重命名
_wsh.Name="
xxx"
;
3.删除行和列
3.1删除行:
((Range)_wsh.Rows[3,Missing.Value]).Delete(XlDeleteShiftDirection.xlShiftUp);
3.2删除列:
_wsh.get_Range(
_wsh.Cells[1,2],
_wsh.Cells[_wsh.Rows.Count,2]).Delete(XlDeleteShiftDirection.xlShiftToLeft
);
4.添加行和列
4.1添加行:
((Range)_wsh.Rows[11,Missing.Value])
.Insert(Missing.Value,XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
4.2添加列:
_wsh.Cells[1,1],_wsh.Cells[_wsh.Rows.Count,1])
.Insert(Missing.Value,XlInsertShiftDirection.xlShiftToRight);
5.单元格操作
5.1单元格的取得
//获得单元格对象
_wsh.Cells[row,cell]
5.2设置公式
//在对应的单元格输入公式即可
_wsh.Cells[row,cell]="
=Sum(A1/B1)"
5.3合并单元格
((Range)_wsh.Rows[1,Missing.Value]).Merge(Missing.Value);
5.4设置行高和列宽
((Range)_wsh.Rows[3,Missing.Value]).RowHeight=5;
((Range)_wsh.Rows[3,Missing.Value]).ColumnWidth=5;
5.5设置单元格颜色颜色共有56中,详情请参照附录的[颜色对照表]
((Range)_wsh.Rows[1,Missing.Value]).Interior.ColorIndex=3;
5.6设置字号
((Range)_wsh.Cells[1,"
B"
]).Font.Size=8;
5.7是否设置粗体
((Range)_wsh.Rows[1,Missing.Value]).Font.Bold=false;
5.8单元格/区域、水平垂直居中
((Range)_wsh.Cells[2,1]).HorizontalAlignment=XlVAlign.xlVAlignCenter;
5.9设置区域边框
((Range)_wsh.Cells[3,3]).Borders.LineStyle=3;
5.10设置边框的上、下、左、右线条
01
//左
02
03
_wsh.Cells[2,1],_wsh.Cells[2,2])
04
.Borders[XlBordersIndex.xlEdgeLeft].Weight=XlBorderWeight.xlThick;
//
05
06
//右
07
08
09
.Borders[XlBordersIndex.xlEdgeRight].Weight=XlBorderWeight.xlThick;
10
11
//上
12
13
14
.Borders[XlBordersIndex.xlEdgeTop].Weight=XlBorderWeight.xlThick;
//下
15
16
17
18
19
.Borders[XlBordersIndex.xlEdgeBottom].Weight=XlBorderWeight.xlThick;
自动换行
range.WrapText
6.指定区域的复制
_Worksheet_wsh=(_Worksheet)shs.get_Item
(1);
//复制选中区域的容
Rangerange=_wsh.get_Range(_wsh.Cells[7,1],_wsh.Cells[10,_wsh.Columns.Count]);
range.Select();
range.Copy(Type.Missing);
//选中粘贴的起始位置
Rangetest=((Range)_wsh.Cells[11,1]);
test.Select();
//屏蔽掉Alert,默认确定粘贴
test.Parse(Missing.Value,Missing.Value);
Type.Missing和Missing.Value,在excel的操作中被视为某些参数的默认值,他们起到的作用很多时候是形式补足参数
7.excel文件的保存,及后续处理
7.1文件保存
//屏蔽掉系统跳出的Alert
app.AlertBeforeOverwriting=false;
//保存到指定目录
5
SaveAs(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后续处理:
退出和释放
//_wbk.Close(null,null,null);
//wbks.Close();
app.Quit();
//释放掉多余的excel进程
6
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
7
app=null;
说明:
在application关闭的过程中,通常我们有两种方案:
#直接退出app
#先关闭workbook,然后关闭workbooks,最后在退出app
鉴于这两种方式,或许本质上是一样的(这点需要证明),但是依据我们软件开发的原则:
哪里需要哪里声明,哪里结束哪里释放回收。
既然在直接退出app的时候,我们不清楚workbook和workbooks具体在什么时间关闭,不如在结束的时候直接手动关闭,这样做可以做到资源的快速直接回收;
所以,建议采用先关闭workbook,然后关闭workbooks,最后在退出app。
8.关于单元格设置域和取得域里需要的数据
8.1若单元格已经设置为下拉框
//这里的“1,2,3”设置的就是下拉框的值
((Range)_wsh.Cells[2,1])
.Validation.Modify(XlDVType.xlValidateList,XlDVAlertStyle.xlValidAlertStop,Type.Missing,"
1,2,3"
Type.Missing);
8.2若单元格还没有设置为下拉框的形式
.Validation.Add(XlDVType.xlValidateList,XlDVAlertStyle.xlValidAlertStop,Type.Missing,"
8.3取得下拉框域的值
stringstrValue=((Range)_wsh.Cells[2,1]).Validation.Formula1;
若在excel模板过有效性设定了下拉框的值,strValue得到的将会是excel里的公式,需将其转换,取得strValue后,可以根据其索引得到你需要的数值;
9.隐藏行和隐藏列
9.1隐藏行
_wsh.get_Range(_wsh.Cells[19,1],_wsh.Cells[22,1]).EntireRow.Hidden=true;
9.2隐藏列
_wsh.get_Range(_wsh.Cells[1,1],_wsh.Cells[_wsh.Rows.Count,1])
.EntireColumn.Hidden=true;
10.锁定指定区域
Range.Locked
11.Excel中插入图片
1.usingSystem;
2.usingSystem.Collections.Generic;
3.usingSystem.Text;
4.//usingExcel=Microsoft.Office.Interop.Excel;
5.usingExcel;
6.usingSystem.Windows.Forms;
7.
8.
9.namespaceExcelReport
10.{
11.classInsertPicToExcel
12.{
13./**////<
summary>
14.///打开没有模板的操作。
15.///<
/summary>
16.publicvoidOpen()
17.{
18.this.Open(String.Empty);
19.}
20.
21./**////<
22.///功能:
实现Excel应用程序的打开
23.///<
24.///<
paramname="
TemplateFilePath"
>
模板文件物理路径<
/param>
25.publicvoidOpen(stringTemplateFilePath)
26.{
27.//打开对象
28.m_objExcel=newExcel.Application();
29.m_objExcel.Visible=false;
30.m_objExcel.DisplayAlerts=false;
31.
32.if(m_objExcel.Version!
="
11.0"
)
33.{
34.MessageBox.Show("
您的Excel版本不是11.0(Office2003),操作可能会出现问题。
"
35.m_objExcel.Quit();
36.return;
37.}
38.
39.m_objBooks=(Excel.Workbooks)m_objExcel.Workbooks;
40.if(TemplateFilePath.Equals(String.Empty))
41.{
42.m_objBook=(Excel._Workbook)(m_objBooks.Add(m_objOpt));
43.}
44.else
45.{
46.m_objBook=m_objBooks.Open(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=(Excel.Sheets)m_objBook.Worksheets;
50.m_objSheet=(Excel._Worksheet)(m_objSheets.get_Item
(1));
51.m_objExcel.WorkbookBeforeClose+=newExcel.AppEvents_WorkbookBeforeCloseEventHandler(m_objExcel_WorkbookBeforeClose);
52.}
53.
54.privatevoidm_objExcel_WorkbookBeforeClose(Excel.Workbookm_objBooks,refbool_Cancel)
55.{
56.MessageBox.Show("
保存完毕!
57.}
58.
59./**////<
60.///将图片插入到指定的单元格位置。
61.///注意:
图片必须是绝对物理路径
62.///<
63.///<
RangeName"
单元格名称,例如:
B4<
64.///<
PicturePath"
要插入图片的绝对路径。
<
65.publicvoidInsertPicture(stringRangeName,stringPicturePath)
66.{
67.m_objRange=m_objSheet.get_Range(RangeName,m_objOpt);
68.m_objRange.Select();
69.Excel.Picturespics=(Excel.Pictures)m_objSheet.Pictures(m_objOpt);
70.pics.Insert(PicturePath,m_objOpt);
71.}
72.
73./**////<
74.///将图片插入到指定的单元格位置,并设置图片的宽度和高度。
75.///注意:
76.///<
77.///<
78.///<
79.///<
PictuteWidth"
插入后,图片在Excel中显示的宽度。
80.///<
PictureHeight"
插入后,图片在Excel中显示的高度。
81.publicvoidInsertPicture(stringRangeName,stringPicturePath,floatPictuteWidth,floatPictureHeight)
82.{
83.m_objRange=m_objSheet.get_Range(RangeName,m_objOpt);
84.m_objRange.Select();
85.floatPicLeft,PicTop;
86.PicLeft=Convert.ToSingle(m_objRange.Left);
87.PicTop=Convert.ToSingle(m_objRange.Top);
88.//参数含义:
89.//图片路径
90.//是否到文件
91.//图片插入时是否随文档一起保存
92.//图片在文档中的坐标位置(单位:
points)
93.//图片显示的宽度和高度(单位:
94.//参数详细信息参见:
msdn2.microsoft./zh-cn/library/aa221765(office.11).aspx
95.m_objSheet.Shapes.AddPicture(PicturePath,Microsoft.Office.Core.MsoTriState.msoFalse,
96.Microsoft.Office.Core.MsoTriState.msoTrue,PicLeft,PicTop,PictuteWidth,PictureHeight);
97.}
98.
99./**////<
100.///将Excel文件保存到指定的目录,目录必须事先存在,文件名称不一定要存在。
101.///<
102.///<
OutputFilePath"
要保存成的文件的全路径。
103.publicvoidSaveFile(stringOutputFilePath)
104.{
105.m_objBook.SaveAs(OutputFilePath,m_objOpt,m_objOpt,
106.m_objOpt,m_objOpt,m_objOpt,Excel.XlSaveAsAccessMode.xlNoChange,
107.m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt);
108.
109.this.Close();
110.}
111./**////<
112.///关闭应用程序
113.///<
114.privatevoidClose()
115.{
116.m_objBook.Close(false,m_objOpt,m_objOpt);
117.m_objExcel.Quit();
118.}
119.
120./**////<
121.///释放所引用的COM对象。
注意:
这个过程一定要执行。
122.///<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作 excel 总结