本篇文章给大家分享的是有关C#中怎么向Excel插入数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
调用方法:
MengXianhui.Utility.ExcelReport.InsertPictureToExcelipt=
newMengXianhui.Utility.ExcelReport.InsertPictureToExcel();ipt.Open();
ipt.InsertPicture("B2",@"C:\Excellogo.gif");
ipt.InsertPicture("B8",@"C:\Excellogo.gif",120,80);
ipt.SaveFile(@"C:\ExcelTest.xls");
ipt.Dispose();
简单包装的类:
usingSystem;
usingSystem.Windows.Forms;
usingExcel=Microsoft.Office.Interop.Excel;
namespaceMengXianhui.Utility.ExcelReport
{
classInsertPictureToExcel
{
///<summary>
///打开没有模板的操作。
///</summary>
publicvoidOpen()
{
this.Open(String.Empty);
}
///<summary>
///功能:实现Excel应用程序的打开
///</summary>
///<paramnameparamname="TemplateFilePath">模板文件物理路径</param>
publicvoidOpen(stringTemplateFilePath)
{
//打开对象
m_objExcel=newExcel.Application();
m_objExcel.Visible=false;
m_objExcel.DisplayAlerts=false;
if(m_objExcel.Version!="11.0")
{
MessageBox.Show("您的Excel版本不是11.0(Office2003),操作可能会出现问题。");
m_objExcel.Quit();
return;
}
m_objBooks=(Excel.Workbooks)m_objExcel.Workbooks;
if(TemplateFilePath.Equals(String.Empty))
{
m_objBook=(Excel._Workbook)(m_objBooks.Add(m_objOpt));
}
else
{
m_objBook=m_objBooks.Open
(TemplateFilePath,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,
m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt);}
m_objSheets=(Excel.Sheets)m_objBook.Worksheets;
m_objSheet=(Excel._Worksheet)(m_objSheets.get_Item(1));
m_objExcel.WorkbookBeforeClose+=newExcel.
AppEvents_WorkbookBeforeCloseEventHandler(m_objExcel_WorkbookBeforeClose);}
privatevoidm_objExcel_WorkbookBeforeClose(Excel.Workbookm_objBooks,refbool_Cancel)
{
MessageBox.Show("保存完毕!");
}
///<summary>
///将图片插入到指定的单元格位置。
///注意:图片必须是绝对物理路径
///</summary>
///<paramnameparamname="RangeName">单元格名称,例如:B4</param>
///<paramnameparamname="PicturePath">要插入图片的绝对路径。</param>
publicvoidInsertPicture(stringRangeName,stringPicturePath)
{
m_objRange=m_objSheet.get_Range(RangeName,m_objOpt);
m_objRange.Select();
Excel.Picturespics=(Excel.Pictures)m_objSheet.Pictures(m_objOpt);
pics.Insert(PicturePath,m_objOpt);
}
///<summary>
///将图片插入到指定的单元格位置,并设置图片的宽度和高度。
///注意:图片必须是绝对物理路径
///</summary>
///<paramnameparamname="RangeName">单元格名称,例如:B4</param>
///<paramnameparamname="PicturePath">要插入图片的绝对路径。</param>
///<paramnameparamname="PictuteWidth">插入后,图片在Excel中显示的宽度。</param>
///<paramnameparamname="PictureHeight">插入后,图片在Excel中显示的高度。</param>
publicvoidInsertPicture
(stringRangeName,stringPicturePath,floatPictuteWidth,floatPictureHeight){
m_objRange=m_objSheet.get_Range(RangeName,m_objOpt);
m_objRange.Select();
floatPicLeft,PicTop;
PicLeft=Convert.ToSingle(m_objRange.Left);
PicTop=Convert.ToSingle(m_objRange.Top);
//参数含义:
//图片路径
//是否链接到文件
//图片插入时是否随文档一起保存
//图片在文档中的坐标位置(单位:points)
//图片显示的宽度和高度(单位:points)
//参数详细信息参见:http://msdn2.microsoft.com/zh-cn/library/aa221765(office.11).aspx
m_objSheet.Shapes.AddPicture(PicturePath,Microsoft.Office.Core.MsoTriState.
msoFalse,Microsoft.Office.Core.MsoTriState.msoTrue,PicLeft,PicTop,
PictuteWidth,PictureHeight);}
///<summary>
///将Excel文件保存到指定的目录,目录必须事先存在,文件名称不一定要存在。
///</summary>
///<paramnameparamname="OutputFilePath">要保存成的文件的全路径。</param>
publicvoidSaveFile(stringOutputFilePath)
{
m_objBook.SaveAs(OutputFilePath,m_objOpt,m_objOpt,
m_objOpt,m_objOpt,m_objOpt,Excel.XlSaveAsAccessMode.xlNoChange,
m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt);
this.Close();
}
///<summary>
///关闭应用程序
///</summary>
privatevoidClose()
{
m_objBook.Close(false,m_objOpt,m_objOpt);
m_objExcel.Quit();
}
///<summary>
///释放所引用的COM对象。注意:这个过程一定要执行。
///</summary>
publicvoidDispose()
{
ReleaseObj(m_objSheets);
ReleaseObj(m_objBook);
ReleaseObj(m_objBooks);
ReleaseObj(m_objExcel);
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
}
///<summary>
///释放对象,内部调用
///</summary>
///<paramnameparamname="o"></param>
privatevoidReleaseObj(objecto)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(o);
}
catch{}
finally{o=null;}
}
privateExcel.Applicationm_objExcel=null;
privateExcel.Workbooksm_objBooks=null;
privateExcel._Workbookm_objBook=null;
privateExcel.Sheetsm_objSheets=null;
privateExcel._Worksheetm_objSheet=null;
privateExcel.Rangem_objRange=null;
privateobjectm_objOpt=System.Reflection.Missing.Value;
}
}
以上就是C#中怎么向Excel插入数据,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。