参看本的帖子 http://community.csdn.net/Expert/topic/3417/3417163.xml?temp=.9710504发布一个操作Excel类库 功能 excel文件创建修改 单元格数据格式编辑 图片 图表 插入控制 外部数据的添加 插入等下载地址:http://www.journeychina.com/OfficeEditor/ExcelEditor提供以下方法:'创建一个Excel对象 Public Sub Creat()
'打开一个Excel对象 Public Sub Open(ByVal FileName As String) 参数描述:FileName :excel文件路径 '获取一个工作表 Public Function GetSheet(ByVal SheetName As String) As Excel.Worksheet 参数描述:SheetName :工作表名称 '添加一个工作表 Public Function AddSheet(ByVal SheetName As String) As Excel.Worksheet '删除一个工作表 Public Function DelSheet(ByVal SheetName As String) '重命名一个工作表 Public Function ReNameSheet(ByVal OldSheetName As String, ByVal NewSheetName As String) As Excel.Worksheet Public Function ReNameSheet(ByVal Sheet As Excel.Worksheet, ByVal NewSheetName As String) As Excel.Worksheet '设置一个单元格的值 Public Sub SetCellValue(ByVal ws As Excel.Worksheet, ByVal x As Integer, ByVal y As Integer, ByVal value As Object) 参数说明 ws:要设值的工作表 X行Y列 value 值 Public Sub SetCellValue(ByVal ws As String, ByVal x As Integer, ByVal y As Integer, ByVal value As Object) ' 设置一个单元格的属性 字体, 大小,颜色 ,对齐方式 Public Sub SetCellProperty(ByVal ws As Excel.Worksheet, ByVal Startx As Integer, ByVal Starty As Integer, ByVal Endx As Integer, ByVal Endy As Integer, ByVal size As Integer, Optional ByVal name As String = "宋体", Optional ByVal color As Excel.Constants = Excel.Constants.xlAutomatic, Optional ByVal HorizontalAlignment As Excel.Constants = Excel.Constants.xlLeft) 参数说明 :ws:要设值的工作表 Startx 起始单元格的行 Starty 起始单元格的列 Endx 结束单元格的行 Endy 结束单元格的列 size 字体大小 name 字体 color 颜色 HorizontalAlignment 对齐方式 Public Sub SetCellProperty(ByVal wsn As String, ByVal Startx As Integer, ByVal Starty As Integer, ByVal Endx As Integer, ByVal Endy As Integer, Optional ByVal size As Integer = 12, Optional ByVal name As String = "宋体", Optional ByVal color As Excel.Constants = Excel.Constants.xlAutomatic, Optional ByVal HorizontalAlignment As Excel.Constants = Excel.Constants.xlAutomatic.xlRight) '合并单元格 Public Sub UniteCells(ByVal ws As Excel.Worksheet, ByVal Startx As Integer, ByVal Starty As Integer, ByVal Endx As Integer, ByVal Endy As Integer)参数说明 :ws:要设值的工作表 Startx 起始单元格的行 Starty 起始单元格的列 Endx 结束单元格的行 Endy 结束单元格的列 '将内存中数据表格插入到Excel指定工作表的指定位置 为在使用摩板时控制格式时使用 Public Sub InsertTable(ByVal dt As Data.DataTable, ByVal ws As String, ByVal startX As Integer, ByVal startY As Integer) Public Sub InsertTable(ByVal dt As Data.DataTable, ByVal ws As Excel.Worksheet, ByVal startX As Integer, ByVal startY As Integer) '将内存中数据表格添加到Excel指定工作表的指定位置 Public Sub AddTable(ByVal dt As Data.DataTable, ByVal ws As String, ByVal startX As Integer, ByVal startY As Integer) Public Sub AddTable(ByVal dt As Data.DataTable, ByVal ws As Excel.Worksheet, ByVal startX As Integer, ByVal startY As Integer) '插入图片操作" Sub InsertPictures(ByVal Filename As String, ByVal ws As String) Sub InsertPictures(ByVal Filename As String, ByVal ws As String, ByVal Height As Integer, ByVal Width As Integer) Sub InsertPictures(ByVal Filename As String, ByVal ws As String, ByVal left As Integer, ByVal top As Integer, ByVal Height As Integer, ByVal Width As Integer) 插入图表操作" Public Sub InsertActiveChart(ByVal ChartType As Excel.XlChartType, ByVal ws As String, ByVal DataSourcesX1 As Integer, ByVal DataSourcesY1 As Integer, ByVal DataSourcesX2 As Integer, ByVal DataSourcesY2 As Integer, Optional ByVal ChartDataType As Excel.XlRowCol = Excel.XlRowCol.xlColumns) 参数说明 :ChartType 为图表类型 ws:要设值的工作表名 DataSourcesX1 图表数据源起始单元格的行 DataSourcesY1 图表数据源起始单元格的列 DataSourcesX2 图表数据源结束单元格的行 DataSourcesY2 图表数据源结束单元格的列 ChartDataType 图表数据数据方式 ' 保存文档 Public Function Save() As Boolean ' 文档另存为 Public Function SaveAs(ByVal FileName) As Boolean' 关闭一个Excel对象,销毁对象 Public Sub Close()这个一定要有!要不然 在系统进程中回有很EXCEL进程没有销毁! 使用方法:引用:VBExcelWordEditor.dll com引用: Microsoft Excel 10.0 Object Library 暂时只做了这些功能,慢慢扩展
参考msdnProgramming with Office: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wrcore/html/wroricodeexamplesforword.asp
http://community.csdn.net/Expert/topic/3430/3430753.xml?temp=.9537165
private Excel.ApplicationClass my=null;
private Excel.Workbook mybook=null;
private Excel.Worksheet mysheet=null;
//设置空值
object objMissing=System.Reflection.Missing.Value;
//打开excel文件
my=new Excel.ApplicationClass();
my.Visible=true;
//打开工作簿
mybook=my.Workbooks.Open(path1.Trim(),objMissing,objMissing, objMissing,
objMissing, objMissing, objMissing,
objMissing, objMissing, objMissing,
objMissing, objMissing, objMissing); mysheet=(Excel.Worksheet)mybook.Worksheets.get_Item(1);
string a=((Excel.Range)mysheet.Cells[k,t]).Text
http://community.csdn.net/Expert/topic/3417/3417163.xml?temp=.9710504发布一个操作Excel类库 功能 excel文件创建修改 单元格数据格式编辑 图片 图表 插入控制 外部数据的添加 插入等下载地址:http://www.journeychina.com/OfficeEditor/ExcelEditor提供以下方法:'创建一个Excel对象
Public Sub Creat()
'打开一个Excel对象
Public Sub Open(ByVal FileName As String)
参数描述:FileName :excel文件路径 '获取一个工作表
Public Function GetSheet(ByVal SheetName As String) As Excel.Worksheet
参数描述:SheetName :工作表名称 '添加一个工作表
Public Function AddSheet(ByVal SheetName As String) As Excel.Worksheet '删除一个工作表
Public Function DelSheet(ByVal SheetName As String) '重命名一个工作表 Public Function ReNameSheet(ByVal OldSheetName As String, ByVal NewSheetName As String) As Excel.Worksheet Public Function ReNameSheet(ByVal Sheet As Excel.Worksheet, ByVal NewSheetName As String) As Excel.Worksheet
'设置一个单元格的值 Public Sub SetCellValue(ByVal ws As Excel.Worksheet, ByVal x As Integer, ByVal y As Integer, ByVal value As Object) 参数说明 ws:要设值的工作表 X行Y列 value 值
Public Sub SetCellValue(ByVal ws As String, ByVal x As Integer, ByVal y As Integer, ByVal value As Object)
' 设置一个单元格的属性 字体, 大小,颜色 ,对齐方式 Public Sub SetCellProperty(ByVal ws As Excel.Worksheet, ByVal Startx As Integer, ByVal Starty As Integer, ByVal Endx As Integer, ByVal Endy As Integer, ByVal size As Integer, Optional ByVal name As String = "宋体", Optional ByVal color As Excel.Constants = Excel.Constants.xlAutomatic, Optional ByVal HorizontalAlignment As Excel.Constants = Excel.Constants.xlLeft)
参数说明 :ws:要设值的工作表 Startx 起始单元格的行 Starty 起始单元格的列 Endx 结束单元格的行 Endy 结束单元格的列 size 字体大小 name 字体 color 颜色 HorizontalAlignment 对齐方式 Public Sub SetCellProperty(ByVal wsn As String, ByVal Startx As Integer, ByVal Starty As Integer, ByVal Endx As Integer, ByVal Endy As Integer, Optional ByVal size As Integer = 12, Optional ByVal name As String = "宋体", Optional ByVal color As Excel.Constants = Excel.Constants.xlAutomatic, Optional ByVal HorizontalAlignment As Excel.Constants = Excel.Constants.xlAutomatic.xlRight)
'合并单元格
Public Sub UniteCells(ByVal ws As Excel.Worksheet, ByVal Startx As Integer, ByVal Starty As Integer, ByVal Endx As Integer, ByVal Endy As Integer)参数说明 :ws:要设值的工作表 Startx 起始单元格的行 Starty 起始单元格的列 Endx 结束单元格的行 Endy 结束单元格的列
'将内存中数据表格插入到Excel指定工作表的指定位置 为在使用摩板时控制格式时使用
Public Sub InsertTable(ByVal dt As Data.DataTable, ByVal ws As String, ByVal startX As Integer, ByVal startY As Integer) Public Sub InsertTable(ByVal dt As Data.DataTable, ByVal ws As Excel.Worksheet, ByVal startX As Integer, ByVal startY As Integer)
'将内存中数据表格添加到Excel指定工作表的指定位置
Public Sub AddTable(ByVal dt As Data.DataTable, ByVal ws As String, ByVal startX As Integer, ByVal startY As Integer)
Public Sub AddTable(ByVal dt As Data.DataTable, ByVal ws As Excel.Worksheet, ByVal startX As Integer, ByVal startY As Integer) '插入图片操作"
Sub InsertPictures(ByVal Filename As String, ByVal ws As String) Sub InsertPictures(ByVal Filename As String, ByVal ws As String, ByVal Height As Integer, ByVal Width As Integer) Sub InsertPictures(ByVal Filename As String, ByVal ws As String, ByVal left As Integer, ByVal top As Integer, ByVal Height As Integer, ByVal Width As Integer)
插入图表操作"
Public Sub InsertActiveChart(ByVal ChartType As Excel.XlChartType, ByVal ws As String, ByVal DataSourcesX1 As Integer, ByVal DataSourcesY1 As Integer, ByVal DataSourcesX2 As Integer, ByVal DataSourcesY2 As Integer, Optional ByVal ChartDataType As Excel.XlRowCol = Excel.XlRowCol.xlColumns) 参数说明 :ChartType 为图表类型 ws:要设值的工作表名 DataSourcesX1 图表数据源起始单元格的行 DataSourcesY1 图表数据源起始单元格的列 DataSourcesX2 图表数据源结束单元格的行 DataSourcesY2 图表数据源结束单元格的列 ChartDataType 图表数据数据方式 ' 保存文档
Public Function Save() As Boolean ' 文档另存为
Public Function SaveAs(ByVal FileName) As Boolean' 关闭一个Excel对象,销毁对象
Public Sub Close()这个一定要有!要不然 在系统进程中回有很EXCEL进程没有销毁!
使用方法:引用:VBExcelWordEditor.dll com引用: Microsoft Excel 10.0 Object Library
暂时只做了这些功能,慢慢扩展
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wrcore/html/wroricodeexamplesforword.asp
excel.Application.Workbooks.Add ( true );//引用Excel工作簿
excel.Visible = true ;//使Excel可视 但此时的Excel表格是一个空的表格,没有任何内容,下面就来介绍如何往Excel表格中输入数据。 3、往Excel表格中输入数据 在命名空间"Excel"中,还定义了一个类"Cell",这个类所代表的就是Excel表格中的一个单元格。通过给"Cell"赋值,从而实现往Excel表格中输入相应的数据,下列代码功能是打开Excel表格,并且往表格输入一些数据。Excel.Application excel = new Excel.Application () ;
excel.Application.Workbooks.Add ( true ) ;
excel.Cells[ 1 , 1 ] = "First Row First Column" ;
excel.Cells[ 1 , 2 ] = "First Row Second Column" ;
excel.Cells[ 2 , 1 ] = "Second Row First Column" ;
excel.Cells[ 2 , 2 ] = "Second Row Second Column" ;
excel.Visible = true ; 4、实例 下面实例在C#中连接Oracle数据库(Name),从表(TableName)中读取数据,并写入Excel。string cnString="Provider=msdaora.1;Data source=Name; ";
cnString=cnString+"user id=UserName;password=Password";
try
{
OleDbConnection cn=new OleDbConnection (cnString);
cn.Open ();
try
{
string s="select * from Name.TableName";
OleDbCommand cmd=new OleDbCommand (s,cn);
OleDbDataReader dr=cmd.ExecuteReader ();
Excel.Application xlApp = new Excel.Application();
if(xlApp==null){MessageBox.Show ("Can't open Excel!");return;}
xlApp.Application .Workbooks .Add (true);
int row=2,fieldcount;
fieldcount=dr.FieldCount ;
for(int col=0;col<fieldcount;col++) xlApp.Cells [1,col+1]=dr.GetName(col);
while (dr.Read ())
{
for(int col=0;col<fieldcount;col++)
xlApp.Cells [row,col+1]=dr.GetValue(col).ToString();
row++;
}
xlApp.Visible =true;
xlApp=null;
}
catch(Exception ex ){MessageBox.Show (ex.Message );}
finally {cn.Close();}
}
catch(Exception ex){MessageBox.Show (ex.Message );}
}
} 5、安装一个使用COM组件的.NET程序 如果要将这样的程序安装运行在另一台机器上,那么除了安装运行程序外,还做三件事。 首先,是安装.NET运行系统。因为任何一个.NET程序都不能离开.NET运行系统去独立运行。 其次,所调用的COM组件必须要安装在目标机器上。本例中大多数目标机器上都装有Microsoft Office的Excel,一般不会有这个问题。但如果是另一个用户自定义的COM组件,那么这个COM组件在运行.NET程序之前必须先安装好。 最后,转换后的.NET组件DLL文件要安装在目标机器上。因为.NET组件不需要在Windows Registry中注册,所以最简单的方法是将.NET组件DLL文件拷贝到运行程序目录下。如果此.NET组件被多个.NET程序共享,可以将其安装在.NET公用组件区中,从而可被任何一个.NET组件使用。只有当一个.NET组件参与了事务处理时,才需要将它注册为一个COM+组件。因为.NET仍然用传统的COM+机制来处理事务的提交、回滚等。 小结 通过以上讨论,我们知道了在C#中,如何使用Excel的COM组件。需要注意的是,Excel对象包含的许多内容我们没有介绍,在使用过程中需要我们不断学习。也使我们了解了在C#中如何使用COM组件。
建议你搜一下,有许多的
excel.Application.Workbooks.Add ( true );//引用Excel工作簿
excel.Visible = true ;//使Excel可视 但此时的Excel表格是一个空的表格,没有任何内容,下面就来介绍如何往Excel表格中输入数据。 3、往Excel表格中输入数据 在命名空间"Excel"中,还定义了一个类"Cell",这个类所代表的就是Excel表格中的一个单元格。通过给"Cell"赋值,从而实现往Excel表格中输入相应的数据,下列代码功能是打开Excel表格,并且往表格输入一些数据。Excel.Application excel = new Excel.Application () ;
excel.Application.Workbooks.Add ( true ) ;
excel.Cells[ 1 , 1 ] = "First Row First Column" ;
excel.Cells[ 1 , 2 ] = "First Row Second Column" ;
excel.Cells[ 2 , 1 ] = "Second Row First Column" ;
excel.Cells[ 2 , 2 ] = "Second Row Second Column" ;
excel.Visible = true ; 4、实例 下面实例在C#中连接Oracle数据库(Name),从表(TableName)中读取数据,并写入Excel。string cnString="Provider=msdaora.1;Data source=Name; ";
cnString=cnString+"user id=UserName;password=Password";
try
{
OleDbConnection cn=new OleDbConnection (cnString);
cn.Open ();
try
{
string s="select * from Name.TableName";
OleDbCommand cmd=new OleDbCommand (s,cn);
OleDbDataReader dr=cmd.ExecuteReader ();
Excel.Application xlApp = new Excel.Application();
if(xlApp==null){MessageBox.Show ("Can't open Excel!");return;}
xlApp.Application .Workbooks .Add (true);
int row=2,fieldcount;
fieldcount=dr.FieldCount ;
for(int col=0;col<fieldcount;col++) xlApp.Cells [1,col+1]=dr.GetName(col);
while (dr.Read ())
{
for(int col=0;col<fieldcount;col++)
xlApp.Cells [row,col+1]=dr.GetValue(col).ToString();
row++;
}
xlApp.Visible =true;
xlApp=null;
}
catch(Exception ex ){MessageBox.Show (ex.Message );}
finally {cn.Close();}
}
catch(Exception ex){MessageBox.Show (ex.Message );}
}
} 5、安装一个使用COM组件的.NET程序 如果要将这样的程序安装运行在另一台机器上,那么除了安装运行程序外,还做三件事。 首先,是安装.NET运行系统。因为任何一个.NET程序都不能离开.NET运行系统去独立运行。 其次,所调用的COM组件必须要安装在目标机器上。本例中大多数目标机器上都装有Microsoft Office的Excel,一般不会有这个问题。但如果是另一个用户自定义的COM组件,那么这个COM组件在运行.NET程序之前必须先安装好。 最后,转换后的.NET组件DLL文件要安装在目标机器上。因为.NET组件不需要在Windows Registry中注册,所以最简单的方法是将.NET组件DLL文件拷贝到运行程序目录下。如果此.NET组件被多个.NET程序共享,可以将其安装在.NET公用组件区中,从而可被任何一个.NET组件使用。只有当一个.NET组件参与了事务处理时,才需要将它注册为一个COM+组件。因为.NET仍然用传统的COM+机制来处理事务的提交、回滚等。 小结 通过以上讨论,我们知道了在C#中,如何使用Excel的COM组件。需要注意的是,Excel对象包含的许多内容我们没有介绍,在使用过程中需要我们不断学习。也使我们了解了在C#中如何使用COM组件。顶 顶!!!