C#对Excel报表进行操作(读写和基本操作)
上一篇 / 下一篇 2008-11-19 15:00:44 / 个人分类:软件开发相关
1208328177
- 自动化测试:
- 测试文档:
//1.添加引用-〉com-〉microsoft excel 11.0
n'O },cJ
]w0//2.若出现错误:命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是缺少程序集引用吗?)51Testing软件测试网(\p#bw6?H+|2A
//解决方法:先删除引用中的Excel,然后找到文件Microsoft.Office.Interop.Excel.dll,手动添加该文件的引用
using System;
Ce1HlIlOJ0using System.Data;
e&A Wz0JI1p m0using System.Reflection;
7iUpF+K}a/x0using System.IO;
SD#p4B-@hL0using Microsoft.Office.Core;
%F~ ~qk&n,W0using System.Windows.Forms;
Pd:F*E@H&R6b6tPV(\;s0using Excel = Microsoft.Office.Interop.Excel;
namespace Wage.Common51Testing软件测试网n1x`S4qA3U
{51Testing软件测试网I:Wa:b(L+oW
/// <summary>51Testing软件测试网9b*dV^g,hC
///作者Li Aimin (原创)
(`Ge_oa;G0 ///功能描述:C#对Excel报表进行操作
Eg;l\MMf0 ///创建时间:2006-01-17,修改时间:2007-1-14
{j ~I9R*H0J0 ///说明:在工程中需要添加Excel11.0对象库的引用(Office 2000为Excel9.0,Office XP为Excel10.0);
Z5vv+_'H"v"}VNF0 /// 需要在Dcom中配置Excel应用程序的权限;
e]S ff+M(g5[x_p0 /// 服务器需要安装Office2003
%rax,lV0 /// </summary>
H(?D%`M|9ZTVIO(O?H0 public class ExcelLib51Testing软件测试网_"kI3@u0@B
D(? Q
{51Testing软件测试网.zNRt9O/c.Oj!N
//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wrcore/html/wrgrfexcelapplicationobject.asp
&M"Er3o S0 #region Variables51Testing软件测试网-A R}&u#V;sU
private Excel.Application excelApplication = null;
y1g.X:F
g"fE0 private Excel.Workbooks excelWorkBooks = null;51Testing软件测试网0YF az4h;MB
g
private Excel.Workbook excelWorkBook = null;
dqr$O9l0C9Hf0 private Excel.Worksheet excelWorkSheet = null;
BrJ
^{Wko\9j0 private Excel.Range excelRange = null;//Excel Range Object,多种用途
ZG!C/Fw.x`'q j-EF0 private Excel.Range excelCopySourceRange = null;//Excel Range Object
b)K3j C9m.h2l#uI;C0 private int excelActiveWorkSheetIndex; //活动工作表索引51Testing软件测试网#oya7H"K$U+},gC^
private string excelOpenFileName = ""; //操作Excel的路径51Testing软件测试网/A*e0S o#[
private string excelSaveFileName = ""; //保存Excel的路径51Testing软件测试网"_k/I7ZE4I"~
#endregion
#region Properties51Testing软件测试网4?w2d'Rm{oJ
public int ActiveSheetIndex51Testing软件测试网7`2K1]Q"?lA3P0ro-a
{
e.]8yK,A5y$r0 get51Testing软件测试网_(yq#JJPWh
{
6ym qu;i7G dc)D#m0 return excelActiveWorkSheetIndex;
|)ZA7}:`A4r6D'e0 }51Testing软件测试网lq_N~
set51Testing软件测试网s#Y#XJ
R x7m-FI
{
+Mq&}K*{-d0 excelActiveWorkSheetIndex = value;51Testing软件测试网!JR3ueY.B+y U*blO
}
e&Irf
K7MPj!]
x1Y$m0 }51Testing软件测试网0mT](i
GBw
public string OpenFileName
Ti
ZCy7RDbG0 {
g0s+MUk`(k0 get51Testing软件测试网mtK6f&pE$fb `3p
U
{51Testing软件测试网[+@{5aQ7zE%B
return excelOpenFileName;
Ppa T5{z2Ik#b0 }51Testing软件测试网?SC%h(~2B!i
set
8ek&pX5c._)B1V4ao0 {
Xki,r5k0 excelOpenFileName = value;
(IbId4\(S@K7l0 }
#De,iK'B0 }51Testing软件测试网I:A/s
rM7{;Zi!w1?
public string SaveFileName51Testing软件测试网A4S4QYm#i
{51Testing软件测试网/qID'Wr
get
7Rrm&Ssu:L0 {
`w7S4^}7V,Zl0cb0 return excelSaveFileName;
pJ-\r(fZq9Q6z(j0 }
-uKn+Dcm0 set
+[C$m{V0 {
`.r}U)t&Cx0 excelSaveFileName = value;51Testing软件测试网4N
t(A4{i-i d0yh
{
}51Testing软件测试网&@mk9m W,F
}
5of:rOI,[F0 #endregion
//
Gk3G`:]]&SLy0 //--------------------------------------------------------------------------------------------------------
LV i3W1K
R
A,z](XKaW0 /// <summary>51Testing软件测试网S@c"h&Z*_7|o3f7GFO
///构造函数;51Testing软件测试网Q$eh!?ot
/// </summary>
,LE7r
h)I,j#T0 public ExcelLib()51Testing软件测试网 A%az XR
{
+J!IZ;O!E&x
RJ0 excelApplication = null;//Excel Application Object
5?&A`-f2XB @0 excelWorkBooks = null;//Workbooks51Testing软件测试网])y1p~%s]
excelWorkBook = null;//Excel Workbook Object
g@
\
K$ln
F0 excelWorkSheet = null;//Excel Worksheet Object
L_}S&X!~jr0 ActiveSheetIndex = 1; //默认值活动工作簿为第一个;设置活动工作簿请参阅SetActiveWorkSheet() 51Testing软件测试网Ib8Utie?
}
D1x-{.W)l(G1B+J0 /// <summary>51Testing软件测试网'T"~5k3\4e.o,a
///以excelOpenFileName为模板新建Excel文件
!tDG#t'SI0_[0 /// </summary>
a9VG"N.q@4h0 public bool OpenExcelFile()
og"B6~JdC0ki0 {
%`5vo'i+a4V0 if (excelApplication != null) CloseExcelApplication();
//检查文件是否存在
$V3nk)D(a'zv9T0E8qo r0 if (excelOpenFileName == "")51Testing软件测试网q5QD,Lx
d
{51Testing软件测试网rbq&s"wd6g4P
throw new Exception("请选择文件!");51Testing软件测试网CQ?%y(EiVP
}
;h-N
`6p/E0 if (!File.Exists(excelOpenFileName))51Testing软件测试网#e*R)_:@?4]X.K
{
throw new Exception(excelOpenFileName + "该文件不存在!");//该异常如何处理,由什么处理????
;y&L