ExcelHelperWord文档下载推荐.docx

上传人:b****6 文档编号:21988157 上传时间:2023-02-02 格式:DOCX 页数:30 大小:32.70KB
下载 相关 举报
ExcelHelperWord文档下载推荐.docx_第1页
第1页 / 共30页
ExcelHelperWord文档下载推荐.docx_第2页
第2页 / 共30页
ExcelHelperWord文档下载推荐.docx_第3页
第3页 / 共30页
ExcelHelperWord文档下载推荐.docx_第4页
第4页 / 共30页
ExcelHelperWord文档下载推荐.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

ExcelHelperWord文档下载推荐.docx

《ExcelHelperWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ExcelHelperWord文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。

ExcelHelperWord文档下载推荐.docx

summary>

///日期:

2017-03-16

///作者:

zhengjf

///邮箱:

25035844@

///功能:

Excel文件操作

///用法:

///1.创建本类对象

///2.CreateNewExcel创建空白Excel文件;

///3.Open打开excel文件;

///GetRowCount获取指定表格的行数

///GetColumnCount获取指定表格的列数

///GetSheet把指定表格读取到datatable里

///GetSheets把所有表格读取到datatable列表里

///Read读取指定表格指定单元内容

///SetCellsBackColor设置单元格颜色

///SetRowBackColor设置某一行的内容

///Write写入内容到单元格/把1个datatable写入到单元格

///Close关闭已经打开的文件

///4.退出之前必须先调用Dispose

///注意事项:

各参数里的下标都是从0开始.函数内部会自动转换为Excel所需的1开始

/summary>

publicclassExcelHelper

{

#region属性

///当前是否已经打开文件

publicBooleanOpened

get;

privateset;

}

///文件的sheet名称列表

publicList<

String>

SheetsNameList

get

returnm_sheetnamelist;

privateset{}

///文件的所有sheet对象集合

publicMSExcel.SheetsSheets

returnm_sheets;

privateset{}

privateSystem.Globalization.CultureInfom_oldCI=System.Threading.Thread.CurrentThread.CurrentCulture;

#endregion

#region内部成员

privateStringm_FileName=String.Empty;

//整个Excel程序

privateMSExcel.ApplicationClassm_excelApp=null;

//一个文件

privateMSExcel.WorkbookClassm_file=null;

//工作表

privateMSExcel.Sheetsm_sheets=null;

///文件里的工作表名称列表

privateList<

m_sheetnamelist=null;

///设置sheet不能超过26列

publicconstInt32Const_Colcount=26;

#region内部函数

///执行打开文件的操作,不加异常保护

paramname="

filename"

>

<

/param>

returns>

/returns>

privateBooleanExecuteOpen(Stringfilename)

m_excelApp=newMSExcel.ApplicationClass();

m_excelApp.Visible=false;

m_excelApp.UserControl=false;

Opened=true;

m_file=(MSExcel.WorkbookClass)m_excelApp.Workbooks.Open(filename,Type.Missing,Type.Missing,

Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,

Type.Missing,Type.Missing,Type.Missing,Type.Missing);

if(m_file==null)

Close();

returnfalse;

m_sheets=m_file.Worksheets;

if(m_sheets.Count<

1)

m_sheetnamelist=newList<

string>

();

foreach(MSExcel.Worksheetsheetinm_sheets)//m_file.Sheets)

m_sheetnamelist.Add(sheet.Name);

returntrue;

#region公开方法

publicExcelHelper()

///执行打开文件的操作,加异常保护

///打开失败则自动关闭

publicBooleanOpen(Stringfilename)

if(Opened)

if(m_FileName.Equals(filename))

Booleanbl=FileProcessor.FileExist(filename);

if(!

bl)

FileProcessor.SetFileReadOnly(filename,false);

m_FileName=filename;

m_oldCI=System.Threading.Thread.CurrentThread.CurrentCulture;

System.Threading.Thread.CurrentThread.CurrentCulture=newSystem.Globalization.CultureInfo("

en-US"

);

Stringmsg="

"

;

try

bl=ExecuteOpen(filename);

catch(Exceptionex)

//出错,先关闭excel,防止驻留在线程里

msg=ex.Message;

//如果有异常,抛出异常,以便界面知道

if(msg.Length>

0)

thrownewException(msg);

returnbl;

///关闭

publicBooleanClose()

//恢复原来的区域语言

System.Threading.Thread.CurrentThread.CurrentCulture=m_oldCI;

Opened)

m_FileName=String.Empty;

Opened=false;

objectsaved=true;

if(m_file!

=null)

m_file.Close(saved);

DebugHelper.Print(ex.Message);

if(m_excelApp!

m_excelApp.Workbooks.Close();

m_excelApp.Quit();

m_file=null;

m_excelApp=null;

//操作过Excel对象后,必须强制垃圾回收.否则无法退出Exccel进程

CommonCompute.GCCollect();

publicvoidDispose()

if(m_excelApp==null)

return;

///保存文件

publicBooleanSave()

m_file.Save();

catch(System.Exceptionex)

DebugHelper.Print("

Saveerror:

+ex.Message);

///获取指定序号的表格里,指定行列的信息

sheetidx"

表格,从0开始<

rowidx"

行,从0开始<

colidx"

列,从0开始<

publicBooleanRead(intsheetidx,introwidx,intcolidx,outStringvalue)

value=String.Empty;

if(sheetidx<

0||sheetidx>

=this.m_sheetnamelist.Count)

MSExcel.Worksheetsheet=(MSExcel.Worksheet)m_sheets[sheetidx+1];

value=((MSExcel.Range)sheet.Cells[rowidx+1,colidx+1]).Text.ToString();

//MSExcel.Rangerange=(MSExcel.Range)sheet.Cells[rowidx+1,colidx+1];

//value=range.Cells[1,1].ToString();

///获取指定名称的表格里,指定行列的信息

从0开始<

publicBooleanRead(Stringsheetname,introwidx,intcolidx,outStringvalue)

Int32sheetidx=m_sheetnamelist.IndexOf(sheetname);

if(sheetidx<

Booleanbl=Read(sheetidx,rowidx+1,colidx+1,outvalue);

///修改某个单元格的颜色

sheet"

color"

privateBooleanSetCellsBackColor(MSExcel.Worksheetsheet,Int32rowidx,

Int32colidx,Colorcolor)

if(colidx>

26)

Int32rownum=rowidx+1;

charcolchar=(char)('

A'

+colidx);

Stringcell=colchar+rownum.ToString();

MSExcel.Ranger=sheet.get_Range(cell,cell);

r.Interior.Color=System.Drawing.ColorTranslator.ToOle(color);

///设置行的颜色

startrowidx"

startcolidx"

endrowidx"

endcolidx"

publicBooleanSetRowBackColor(Int32sheetidx,introwidx,Colorcolor)

=m_sheets.Count)

}

if(rowidx<

0||rowidx>

=sheet.Rows.Count)

rowidx++;

Int32colcnt=GetColumnCount(sheetidx);

charstartcolchar='

charendcolchar=(char)('

+colcnt);

//最后一列

Stringstartcell=startcolchar+rowidx.ToString();

//AN,N为列序号.比如A3

Stringendcell=endcolchar+rowidx.ToString();

//MN,M为末尾列标题.比如G3

MSExcel.Ranger=sheet.get_Range(startcell,endcell);

///设置单元格的颜色

publicBooleanSetCellsBackColor(Int32sheetidx,intstartrowidx,intstartcolidx,intendrowidx,

intendcolidx,Colorcolor)

if(startcolidx>

=26||endcolidx>

=26)

if(startrowidx>

endrowidx)

if(m_sheetnamelist==null||m_sheetnamelist.Count<

1||

sheetidx<

=m_sheetnamelist.Count)

Int32strartrownum=startrowidx+1;

Int32endrownum=endrowidx+1;

charstartcolchar=(char)('

+startcolidx);

+endcolidx);

Stringstartcell=startcolchar+strartrownum.ToString();

Stringendcell=endcolchar+endrownum.ToString();

///设置指定表格内容

value"

publicBooleanWrite(Int32sheetidx,introwidx,intcolidx,Stringvalue)

//value=String.Empty;

=sheet.Cells.Rows.Count)

if(colidx<

0||colidx>

=sheet.Cells.Columns.Count)

sheet.Cells[rowidx+1,colidx+1]=value;

///设置指定表格内

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1