system.data;
using system.drawing;
using system.text;
using system.windows.forms;
using microsoft.office.interop.excel;
using system.data.sqlclient;
using system.data.oledb;
using system.reflection;
namespace excelprj
{
/// <summary>
/// excel 系统中的主文件excel.exe 本身就是 com 组件,通过在.net 项目中引用exel.exe 文件可以实现对excel 的功能控制
/// 与com 组件相互操作是通过使用"包装类"(wrapper class) 和"代理"(proxy) 的机制实现的.包装类使.net 程序可以识别com 组件提供的接口,而代理类则是提供对 com 接口的访问
/// </summary>
public partial class form1 : form
{
public form1()
{
initializecomponent();
}
private void button3_click(object sender, eventargs e)
{
exporttasks(bind(), datagridview1);
}
//如果 excel 安装在计算机上,侧导出表格内容到 excel
public void exporttasks(dataset tasksdata, datagridview tasksgridview)
{
// 定义要使用的excel 组件接口
// 定义application 对象,此对象表示整个excel 程序
microsoft.office.interop.excel.application excelapp = null ;
// 定义workbook对象,此对象代表工作薄
microsoft.office.interop.excel.workbook workbook;
// 定义worksheet 对象,此对象表示execel 中的一张工作表
microsoft.office.interop.excel.worksheet ws=null;
//定义range对象,此对象代表单元格区域
microsoft.office.interop.excel.range r;
int row = 1; int cell = 1;
try
{
//初始化 application 对象 excelapp
excelapp = new microsoft.office.interop.excel.application();
//在工作薄的第一个工作表上创建任务列表
workbook = excelapp.workbooks.add(xlwbatemplate.xlwbatworksheet);
ws =(worksheet)workbook.worksheets[1];
// 命名工作表的名称为 "task management"
ws.name = "task management";
#region 创建表格的列头
// 遍历数据表中的所有列
foreach (datagridviewcolumn cs in tasksgridview.columns)
{
// 假如并不想把主键也显示出来
if (cs.headertext != "编号")
{
ws.cells[row, cell] = cs.headertext;
r = (range)ws.cells[row, cell];
ws.get_range(r, r).horizontalalignment = microsoft.office.interop.excel.xlvalign.xlvaligncenter;
//此处用来设置列的样式
cell++;
}
}
// 创建行,把数据视图记录输出到对应的excel 单元格
for (int i = 2; i < tasksdata.tables[0].rows.count; i++)
{
for (int j = 1; j < tasksdata.tables[0].columns.count; j++)
{
ws.cells[i, j] = tasksdata.tables[0].rows[i][j].tostring();
// r = (range)ws.cells[i,j];
range rg = (range)ws.get_range(ws.cells[i, j], ws.cells[i, j]);
rg.entirecolumn.columnwidth = 20;
// rg.columns.autofit();
rg.numberformatlocal = "@";
}
}
#endregion
}
catch (exception ex)
{
messagebox.show(ex.tostring());
}
//显示 excel
excelapp.visible = true;
}
private void button5_click(object sender, eventargs e)
{
dataset ds = bind();
datagridview1.datasource = ds.tables[0];
}
private dataset bind()
{
sqlconnection conn = new sqlconnection("server=.;database=testmanage;integrated security=sspi");
sqldataadapter da = new sqldataadapter("select fnumber,fexamnum,fname,fsex,fjobadd,fcardid,fbirdate from stuinfo", conn);
dataset ds = new dataset();
da.fill(ds);
return ds;
}
private void button2_click(object sender, eventargs e)
{
savefiledialog sfd = new savefiledialog();
sfd.title = "请选择将导出的excel文件存放路径";
sfd.filename = system.datetime.now.toshortdatestring() + "-学生信息";
sfd.filter = "excel文档(*.xls)|*.xls";
sfd.showdialog();
if (sfd.filename != "")
{
microsoft.office.interop.excel.application excelapp = new microsoft.office.interop.excel.application();
if (excelapp == null)
{
messagebox.show("无法创建excel对象,可能您的机器未安装excel");
}
else
{
microsoft.office.interop.excel.workbooks workbooks = excelapp.workbooks;
microsoft.office.interop.excel.workbook workbook = workbooks.add(xlwbatemplate.xlwbatworksheet);
microsoft.office.interop.excel.worksheet worksheet =(worksheet) workbook.worksheets[1];
dataset ds=bind();
for (int i = 1; i < ds.tables[0].rows.count; i++)
{
for (int j = 1; j < ds.tables[0].columns.count;j++ )
{
if (i == 1)
{
worksheet.cells[i, j] = datagridview1.columns[j].headertext;
}
worksheet.cells[i+1, j] = ds.tables[0].rows[i][j].tostring();
}
}
//保存方式一:保存workbook
//workbook.saveas(@"f:cdata.xls",
// 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);
//保存方式二:保存worksheet
// worksheet.saveas(@"f:cdata2.xls",
// missing.value, missing.value, missing.value, missing.value,
// missing.value, missing.value, missing.value, missing.value, missing.value);
////保存方式三
//workbook.saved = true;
//workbook.savecopyas(sfd.filename);
system.runtime.interoervices.marshal.releasecomobject(worksheet);
worksheet = null;
system.runtime.interopservices.marshal.releasecomobject(workbook);
workbook = null;
workbooks.close();
system.runtime.interopservices.marshal.releasecomobject(workbooks);
workbooks = null;
excelapp.quit();
system.runtime.interopservices.marshal.releasecomobject(excelapp);
excelapp = null;
messagebox.show("导出excel完成!");
}
}
}
private void button4_click(object sender, eventargs e)
{
string strexcelfilename = @"f:2007-07-16-学生信息.xls";
string strsheetname = "sheet1";
#region aspnet 操作excel 正确
////源的定义
//string strconn = "provider=microsoft.jet.oledb.4.0;data source = " + strexcelfilename + ";extended properties ='excel 8.0;hdr=no;imex=1'";
////sql语句
//string strexcel = "select * from [" + strsheetname + "$]";
////定义存放的数据表
//dataset ds = new dataset();
////连接数据源
//oledbconnection conn = new oledbconnection(strconn);
//conn.open();
////适配到数据源
//oledbdataadapter adapter = new oledbdataadapter(strexcel, conn);
//adapter.fill(ds,"res");
//conn.close();
//// 一般的情况下. excel 表格的第一行是列名
//datagridview2.datasource = ds.tables["res"];
#endregion
#region com 组件读取复杂excel
microsoft.office.interop.excel.application excelapp = null;
microsoft.office.interop.excel.workbook workbook;
microsoft.office.interop.excel.worksheet ws = null;
try
{
excelapp = new microsoft.office.interop.excel.application();
workbook = excelapp.workbooks.open(@"f:book1.xls", missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value);
ws = (worksheet)workbook.worksheets[1];
//excel 默认为 256www.3ppt.com 列..
messagebox.show(ws.cells.columns.count.tostring());
excelapp.quit();
}
catch (exception ex)
{
throw ex;
}
#endregion
}
}
}
一些excel操作详解
一) 使用动态创建的方法
首先创建 excel 对象,使用comobj:
var excelapp: variant;
excelapp := createoleobject( 'excel.application ' );
1) 显示当前窗口:
excelapp.visible := true;
2) 更改 excel 标题栏:
excelapp.caption := '应用程序调用 microsoft excel ';
3) 添加新工作簿:
excelapp.workbooks.add;
4) 打开已存在的工作簿:
excelapp.workbooks.open( 'c:exceldemo.xls ' );
5) 设置第2个工作表为活动工作表:
excelapp.worksheets[2].activate;
或
excelapp.workssheets[ 'sheet2 ' ].activate;
6) 给单元格赋值:
excelapp.cells[1,4].value := '第一行第四列 ';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
excelapp.activesheet.columns[1].columnswidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
excelapp.activesheet.rows[2].rowheight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
excelapp.worksheets[1].rows[8].pagebreak := 1;
10) 在第8列之前删除分页符:
excelapp.activesheet.columns[4].pagebreak := 0;
11) 指定边框线宽度:
excelapp.activesheet.range[ 'b3:d4 ' ].borders[2].weight := 3;
1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )
12) 清除第一行第四列单元格公式:
excelapp.activesheet.cells[1,4].clearcontents;
13) 设置第一行字体属性:
excelapp.activesheet.rows[1].font.name := '隶书 ';
excelapp.activesheet.rows[1].font.color := clblue;
excelapp.activesheet.rows[1].font.bold := true;
excelapp.activesheet.rows[1].font.underline := true;
14) 进行页面设置:
a.页眉:
excelapp.activesheet.pagesetup.centerheader := '报表演示 ';
b.页脚:
excelapp.activesheet.pagesetup.centerfooter := '第&p页 ';
c.页眉到顶端边距2cm:
excelapp.activesheet.pagesetup.headermargin := 2/0.035;
d.页脚到底端边距3cm:
excelapp.activesheet.pagesetup.headermargin := 3/0.035;
e.顶边距2cm:
excelapp.activesheet.pagesetup.topmargin := 2/0.035;
f.底边距2cm:
excelapp.activesheet.pagesetup.bottommargin := 2/0.035;
g.左边距2cm:
excelapp.activesheet.pagesetup.leftmargin := 2/0.035;
h.右边距2cm:
excelapp.activesheet.pagesetup.rightmargin := 2/0.035;
i.页面水平居中:
excelapp.activesheet.pagesetup.centerhorizontally := 2/0.035;
j.页面垂直居中:
excelapp.activesheet.pagesetup.centervertically := 2/0.035;
k.打印单元格网线:
excelapp.activesheet.pagesetup.printgridlines := true;
15) 拷贝操作:
a.拷贝整个工作表:
excelapp.activesheet.used.range.copy;
b.拷贝指定区域:
excelapp.activesheet.range[ 'a1:e2 ' ].copy;
c.从a1位置开始粘贴:
excelapp.activesheet.range.[ 'a1 ' ].pastespecial;
d.从文件尾部开始粘贴:
excelapp.activesheet.range.pastespecial;
16) 插入一行或一列:
a. excelapp.activesheet.rows[2].insert;
b. excelapp.activesheet.columns[1].insert;
17) 删除一行或一列:
a. excelapp.activesheet.rows[2].delete;
b. excelapp.activesheet.columns[1].delete;
18) 打印预览工作表:
excelapp.activesheet.printpreview;
19) 打印输出工作表:
excelapp.activesheet.printout;
20) 工作表保存:
if not excelapp.activeworkbook.saved then
excelapp.activesheet.printpreview;
21) 工作表另存为:
excelapp.saveas( 'c:exceldemo1.xls ' );
22) 放弃存盘:
excelapp.activeworkbook.saved := true;
23) 关闭工作簿:
excelapp.workbooks.close;
24) 退出 excel:
excelapp.quit;
(二) 使用delphi 控件方法
在form中分别放入excelapplication, excelworkbook和excelworksheet。
1) 打开excel
excelapplication1.connect;
2) 显示当前窗口:
excelapplication1.visible[0]:=true;
3) 更改 excel 标题栏:
excelapplication1.caption := '应用程序调用 microsoft excel ';
4) 添加新工作簿:
excelworkbook1.connectto(excelapplication1.workbooks.add(emptyparam,0));
5) 添加新工作表:
var temp_worksheet: _worksheet;
begin
temp_worksheet:=excelworkbook1.
worksheets.add(emptyparam,emptyparam,emptyparam,emptyparam,0) as _worksheet;
excelworksheet1.connectto(temp_worksheet);
end;
6) 打开已存在的工作簿:
excelapplication1.workbooks.open (c:a.xls
emptyparam,emptyparam,emptyparam,emptyparam,
emptyparam,emptyparam,emptyparam,emptyparam,
emptyparam,emptyparam,emptyparam,emptyparam,0)
7) 设置第2个工作表为活动工作表:
excelapplication1.worksheets[2].activate; 或
excelapplication1.workssheets[ 'sheet2 ' ].activate;
8) 给单元格赋值:
excelapplication1.cells[1,4].value := '第一行第四列 ';
9) 设置指定列的宽度(单位:字符个数),以第一列为例:
excelapplication1.activesheet.columns[1].columnswidth := 5;
10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
excelapplication1.activesheet.rows[2].rowheight := 1/0.035; // 1厘米
11) 在第8行之前插入分页符:
excelapplication1.worksheets[1].rows[8].pagebreak := 1;
12) 在第8列之前删除分页符:
excelapplication1.activesheet.columns[4].pagebreak := 0;
13) 指定边框线宽度:
excelapplication1.activesheet.range[ 'b3:d4 ' ].borders[2].weight := 3;
1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )
14) 清除第一行第四列单元格公式:
excelapplication1.activesheet.cells[1,4].clearcontents;
15) 设置第一行字体属性:
excelapplication1.activesheet.rows[1].font.name := '隶书 ';
excelapplication1.activesheet.rows[1].font.color := clblue;
excelapplication1.activesheet.rows[1].font.bold := true;
excelapplication1.activesheet.rows[1].font.underline := true;
16) 进行页面设置:
a.页眉:
excelapplication1.activesheet.pagesetup.centerheader := '报表演示 ';
b.页脚:
excelapplication1.activesheet.pagesetup.centerfooter := '第&p页 ';
c.页眉到顶端边距2cm:
excelapplication1.activesheet.pagesetup.headermargin := 2/0.035;
d.页脚到底端边距3cm:
excelapplication1.activesheet.pagesetup.headermargin := 3/0.035;
e.顶边距2cm:
excelapplication1.activesheet.pagesetup.topmargin := 2/0.035;
f.底边距2cm:
excelapplication1.activesheet.pagesetup.bottommargin := 2/0.035;
g.左边距2cm:
excelapplication1.activesheet.pagesetup.leftmargin := 2/0.035;
h.右边距2cm:
excelapplication1.activesheet.pagesetup.rightmargin := 2/0.035;
i.页面水平居中:
excelapplication1.activesheet.pagesetup.centerhorizontally := 2/0.035;
j.页面垂直居中:
excelapplication1.activesheet.pagesetup.centervertically := 2/0.035;
k.打印单元格网线:
excelapplication1.activesheet.pagesetup.printgridlines := true;
17) 拷贝操作:
a.拷贝整个工作表:
excelapplication1.activesheet.used.range.copy;
b.拷贝指定区域:
excelapplication1.activesheet.range[ 'a1:e2 ' ].copy;
c.从a1位置开始粘贴:
excelapplication1.activesheet.range.[ 'a1 ' ].pastespecial;
d.从文件尾部开始粘贴:
excelapplication1.activesheet.range.pastespecial;
18) 插入一行或一列:
a. excelapplication1.activesheet.rows[2].insert;
b. excelapplication1.activesheet.columns[1].insert;
19) 删除一行或一列:
a. excelapplication1.activesheet.rows[2].delete;
b. excelapplication1.activesheet.columns[1].delete;
20) 打印预览工作表:
excelapplication1.activesheet.printpreview;
21) 打印输出工作表:
excelapplication1.activesheet.printout;
22) 工作表保存:
if not excelapplication1.activeworkbook.saved then
excelapplication1.activesheet.printpreview;
23) 工作表另存为:
excelapplication1.saveas( 'c:exceldemo1.xls ' );
24) 放弃存盘:
excelapplication1.activeworkbook.saved := true;
25) 关闭工作簿:
excelapplication1.workbooks.close;
26) 退出 excel:
excelapplication1.quit;
excelapplication1.disconnect;
(三) 使用delphi 控制excle二维图
在form中分别放入excelapplication, excelworkbook和excelworksheet
var asheet1,achart, range:variant;
1)选择当第一个工作薄第一个工作表
asheet1:=excelapplication1.workbooks[1].worksheets[1];
2)增加一个二维图
achart:=asheet1.chartobjects.add(100,100,200,200);
3)选择二维图的形态
achart.chart.charttype:=4;
4)给二维图赋值
series:=achart.chart.seriescollection;
range:=sheet1!r2c3:r3c9;
series.add(range,true);
5)加上二维图的标题
achart.chart.hastitle:=true;
achart.chart.charttitle.characters.text:=’ excle二维图’
6)改变二维图的标题字体大小
achart.chart.charttitle.font.size:=6;
using system.drawing;
using system.text;
using system.windows.forms;
using microsoft.office.interop.excel;
using system.data.sqlclient;
using system.data.oledb;
using system.reflection;
namespace excelprj
{
/// <summary>
/// excel 系统中的主文件excel.exe 本身就是 com 组件,通过在.net 项目中引用exel.exe 文件可以实现对excel 的功能控制
/// 与com 组件相互操作是通过使用"包装类"(wrapper class) 和"代理"(proxy) 的机制实现的.包装类使.net 程序可以识别com 组件提供的接口,而代理类则是提供对 com 接口的访问
/// </summary>
public partial class form1 : form
{
public form1()
{
initializecomponent();
}
private void button3_click(object sender, eventargs e)
{
exporttasks(bind(), datagridview1);
}
//如果 excel 安装在计算机上,侧导出表格内容到 excel
public void exporttasks(dataset tasksdata, datagridview tasksgridview)
{
// 定义要使用的excel 组件接口
// 定义application 对象,此对象表示整个excel 程序
microsoft.office.interop.excel.application excelapp = null ;
// 定义workbook对象,此对象代表工作薄
microsoft.office.interop.excel.workbook workbook;
// 定义worksheet 对象,此对象表示execel 中的一张工作表
microsoft.office.interop.excel.worksheet ws=null;
//定义range对象,此对象代表单元格区域
microsoft.office.interop.excel.range r;
int row = 1; int cell = 1;
try
{
//初始化 application 对象 excelapp
excelapp = new microsoft.office.interop.excel.application();
//在工作薄的第一个工作表上创建任务列表
workbook = excelapp.workbooks.add(xlwbatemplate.xlwbatworksheet);
ws =(worksheet)workbook.worksheets[1];
// 命名工作表的名称为 "task management"
ws.name = "task management";
#region 创建表格的列头
// 遍历数据表中的所有列
foreach (datagridviewcolumn cs in tasksgridview.columns)
{
// 假如并不想把主键也显示出来
if (cs.headertext != "编号")
{
ws.cells[row, cell] = cs.headertext;
r = (range)ws.cells[row, cell];
ws.get_range(r, r).horizontalalignment = microsoft.office.interop.excel.xlvalign.xlvaligncenter;
//此处用来设置列的样式
cell++;
}
}
// 创建行,把数据视图记录输出到对应的excel 单元格
for (int i = 2; i < tasksdata.tables[0].rows.count; i++)
{
for (int j = 1; j < tasksdata.tables[0].columns.count; j++)
{
ws.cells[i, j] = tasksdata.tables[0].rows[i][j].tostring();
// r = (range)ws.cells[i,j];
range rg = (range)ws.get_range(ws.cells[i, j], ws.cells[i, j]);
rg.entirecolumn.columnwidth = 20;
// rg.columns.autofit();
rg.numberformatlocal = "@";
}
}
#endregion
}
catch (exception ex)
{
messagebox.show(ex.tostring());
}
//显示 excel
excelapp.visible = true;
}
private void button5_click(object sender, eventargs e)
{
dataset ds = bind();
datagridview1.datasource = ds.tables[0];
}
private dataset bind()
{
sqlconnection conn = new sqlconnection("server=.;database=testmanage;integrated security=sspi");
sqldataadapter da = new sqldataadapter("select fnumber,fexamnum,fname,fsex,fjobadd,fcardid,fbirdate from stuinfo", conn);
dataset ds = new dataset();
da.fill(ds);
return ds;
}
private void button2_click(object sender, eventargs e)
{
savefiledialog sfd = new savefiledialog();
sfd.title = "请选择将导出的excel文件存放路径";
sfd.filename = system.datetime.now.toshortdatestring() + "-学生信息";
sfd.filter = "excel文档(*.xls)|*.xls";
sfd.showdialog();
if (sfd.filename != "")
{
microsoft.office.interop.excel.application excelapp = new microsoft.office.interop.excel.application();
if (excelapp == null)
{
messagebox.show("无法创建excel对象,可能您的机器未安装excel");
}
else
{
microsoft.office.interop.excel.workbooks workbooks = excelapp.workbooks;
microsoft.office.interop.excel.workbook workbook = workbooks.add(xlwbatemplate.xlwbatworksheet);
microsoft.office.interop.excel.worksheet worksheet =(worksheet) workbook.worksheets[1];
dataset ds=bind();
for (int i = 1; i < ds.tables[0].rows.count; i++)
{
for (int j = 1; j < ds.tables[0].columns.count;j++ )
{
if (i == 1)
{
worksheet.cells[i, j] = datagridview1.columns[j].headertext;
}
worksheet.cells[i+1, j] = ds.tables[0].rows[i][j].tostring();
}
}
//保存方式一:保存workbook
//workbook.saveas(@"f:cdata.xls",
// 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);
//保存方式二:保存worksheet
// worksheet.saveas(@"f:cdata2.xls",
// missing.value, missing.value, missing.value, missing.value,
// missing.value, missing.value, missing.value, missing.value, missing.value);
////保存方式三
//workbook.saved = true;
//workbook.savecopyas(sfd.filename);
system.runtime.interoervices.marshal.releasecomobject(worksheet);
worksheet = null;
system.runtime.interopservices.marshal.releasecomobject(workbook);
workbook = null;
workbooks.close();
system.runtime.interopservices.marshal.releasecomobject(workbooks);
workbooks = null;
excelapp.quit();
system.runtime.interopservices.marshal.releasecomobject(excelapp);
excelapp = null;
messagebox.show("导出excel完成!");
}
}
}
private void button4_click(object sender, eventargs e)
{
string strexcelfilename = @"f:2007-07-16-学生信息.xls";
string strsheetname = "sheet1";
#region aspnet 操作excel 正确
////源的定义
//string strconn = "provider=microsoft.jet.oledb.4.0;data source = " + strexcelfilename + ";extended properties ='excel 8.0;hdr=no;imex=1'";
////sql语句
//string strexcel = "select * from [" + strsheetname + "$]";
////定义存放的数据表
//dataset ds = new dataset();
////连接数据源
//oledbconnection conn = new oledbconnection(strconn);
//conn.open();
////适配到数据源
//oledbdataadapter adapter = new oledbdataadapter(strexcel, conn);
//adapter.fill(ds,"res");
//conn.close();
//// 一般的情况下. excel 表格的第一行是列名
//datagridview2.datasource = ds.tables["res"];
#endregion
#region com 组件读取复杂excel
microsoft.office.interop.excel.application excelapp = null;
microsoft.office.interop.excel.workbook workbook;
microsoft.office.interop.excel.worksheet ws = null;
try
{
excelapp = new microsoft.office.interop.excel.application();
workbook = excelapp.workbooks.open(@"f:book1.xls", missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value, missing.value);
ws = (worksheet)workbook.worksheets[1];
//excel 默认为 256www.3ppt.com 列..
messagebox.show(ws.cells.columns.count.tostring());
excelapp.quit();
}
catch (exception ex)
{
throw ex;
}
#endregion
}
}
}
一些excel操作详解
一) 使用动态创建的方法
首先创建 excel 对象,使用comobj:
var excelapp: variant;
excelapp := createoleobject( 'excel.application ' );
1) 显示当前窗口:
excelapp.visible := true;
2) 更改 excel 标题栏:
excelapp.caption := '应用程序调用 microsoft excel ';
3) 添加新工作簿:
excelapp.workbooks.add;
4) 打开已存在的工作簿:
excelapp.workbooks.open( 'c:exceldemo.xls ' );
5) 设置第2个工作表为活动工作表:
excelapp.worksheets[2].activate;
或
excelapp.workssheets[ 'sheet2 ' ].activate;
6) 给单元格赋值:
excelapp.cells[1,4].value := '第一行第四列 ';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
excelapp.activesheet.columns[1].columnswidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
excelapp.activesheet.rows[2].rowheight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
excelapp.worksheets[1].rows[8].pagebreak := 1;
10) 在第8列之前删除分页符:
excelapp.activesheet.columns[4].pagebreak := 0;
11) 指定边框线宽度:
excelapp.activesheet.range[ 'b3:d4 ' ].borders[2].weight := 3;
1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )
12) 清除第一行第四列单元格公式:
excelapp.activesheet.cells[1,4].clearcontents;
13) 设置第一行字体属性:
excelapp.activesheet.rows[1].font.name := '隶书 ';
excelapp.activesheet.rows[1].font.color := clblue;
excelapp.activesheet.rows[1].font.bold := true;
excelapp.activesheet.rows[1].font.underline := true;
14) 进行页面设置:
a.页眉:
excelapp.activesheet.pagesetup.centerheader := '报表演示 ';
b.页脚:
excelapp.activesheet.pagesetup.centerfooter := '第&p页 ';
c.页眉到顶端边距2cm:
excelapp.activesheet.pagesetup.headermargin := 2/0.035;
d.页脚到底端边距3cm:
excelapp.activesheet.pagesetup.headermargin := 3/0.035;
e.顶边距2cm:
excelapp.activesheet.pagesetup.topmargin := 2/0.035;
f.底边距2cm:
excelapp.activesheet.pagesetup.bottommargin := 2/0.035;
g.左边距2cm:
excelapp.activesheet.pagesetup.leftmargin := 2/0.035;
h.右边距2cm:
excelapp.activesheet.pagesetup.rightmargin := 2/0.035;
i.页面水平居中:
excelapp.activesheet.pagesetup.centerhorizontally := 2/0.035;
j.页面垂直居中:
excelapp.activesheet.pagesetup.centervertically := 2/0.035;
k.打印单元格网线:
excelapp.activesheet.pagesetup.printgridlines := true;
15) 拷贝操作:
a.拷贝整个工作表:
excelapp.activesheet.used.range.copy;
b.拷贝指定区域:
excelapp.activesheet.range[ 'a1:e2 ' ].copy;
c.从a1位置开始粘贴:
excelapp.activesheet.range.[ 'a1 ' ].pastespecial;
d.从文件尾部开始粘贴:
excelapp.activesheet.range.pastespecial;
16) 插入一行或一列:
a. excelapp.activesheet.rows[2].insert;
b. excelapp.activesheet.columns[1].insert;
17) 删除一行或一列:
a. excelapp.activesheet.rows[2].delete;
b. excelapp.activesheet.columns[1].delete;
18) 打印预览工作表:
excelapp.activesheet.printpreview;
19) 打印输出工作表:
excelapp.activesheet.printout;
20) 工作表保存:
if not excelapp.activeworkbook.saved then
excelapp.activesheet.printpreview;
21) 工作表另存为:
excelapp.saveas( 'c:exceldemo1.xls ' );
22) 放弃存盘:
excelapp.activeworkbook.saved := true;
23) 关闭工作簿:
excelapp.workbooks.close;
24) 退出 excel:
excelapp.quit;
(二) 使用delphi 控件方法
在form中分别放入excelapplication, excelworkbook和excelworksheet。
1) 打开excel
excelapplication1.connect;
2) 显示当前窗口:
excelapplication1.visible[0]:=true;
3) 更改 excel 标题栏:
excelapplication1.caption := '应用程序调用 microsoft excel ';
4) 添加新工作簿:
excelworkbook1.connectto(excelapplication1.workbooks.add(emptyparam,0));
5) 添加新工作表:
var temp_worksheet: _worksheet;
begin
temp_worksheet:=excelworkbook1.
worksheets.add(emptyparam,emptyparam,emptyparam,emptyparam,0) as _worksheet;
excelworksheet1.connectto(temp_worksheet);
end;
6) 打开已存在的工作簿:
excelapplication1.workbooks.open (c:a.xls
emptyparam,emptyparam,emptyparam,emptyparam,
emptyparam,emptyparam,emptyparam,emptyparam,
emptyparam,emptyparam,emptyparam,emptyparam,0)
7) 设置第2个工作表为活动工作表:
excelapplication1.worksheets[2].activate; 或
excelapplication1.workssheets[ 'sheet2 ' ].activate;
8) 给单元格赋值:
excelapplication1.cells[1,4].value := '第一行第四列 ';
9) 设置指定列的宽度(单位:字符个数),以第一列为例:
excelapplication1.activesheet.columns[1].columnswidth := 5;
10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
excelapplication1.activesheet.rows[2].rowheight := 1/0.035; // 1厘米
11) 在第8行之前插入分页符:
excelapplication1.worksheets[1].rows[8].pagebreak := 1;
12) 在第8列之前删除分页符:
excelapplication1.activesheet.columns[4].pagebreak := 0;
13) 指定边框线宽度:
excelapplication1.activesheet.range[ 'b3:d4 ' ].borders[2].weight := 3;
1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )
14) 清除第一行第四列单元格公式:
excelapplication1.activesheet.cells[1,4].clearcontents;
15) 设置第一行字体属性:
excelapplication1.activesheet.rows[1].font.name := '隶书 ';
excelapplication1.activesheet.rows[1].font.color := clblue;
excelapplication1.activesheet.rows[1].font.bold := true;
excelapplication1.activesheet.rows[1].font.underline := true;
16) 进行页面设置:
a.页眉:
excelapplication1.activesheet.pagesetup.centerheader := '报表演示 ';
b.页脚:
excelapplication1.activesheet.pagesetup.centerfooter := '第&p页 ';
c.页眉到顶端边距2cm:
excelapplication1.activesheet.pagesetup.headermargin := 2/0.035;
d.页脚到底端边距3cm:
excelapplication1.activesheet.pagesetup.headermargin := 3/0.035;
e.顶边距2cm:
excelapplication1.activesheet.pagesetup.topmargin := 2/0.035;
f.底边距2cm:
excelapplication1.activesheet.pagesetup.bottommargin := 2/0.035;
g.左边距2cm:
excelapplication1.activesheet.pagesetup.leftmargin := 2/0.035;
h.右边距2cm:
excelapplication1.activesheet.pagesetup.rightmargin := 2/0.035;
i.页面水平居中:
excelapplication1.activesheet.pagesetup.centerhorizontally := 2/0.035;
j.页面垂直居中:
excelapplication1.activesheet.pagesetup.centervertically := 2/0.035;
k.打印单元格网线:
excelapplication1.activesheet.pagesetup.printgridlines := true;
17) 拷贝操作:
a.拷贝整个工作表:
excelapplication1.activesheet.used.range.copy;
b.拷贝指定区域:
excelapplication1.activesheet.range[ 'a1:e2 ' ].copy;
c.从a1位置开始粘贴:
excelapplication1.activesheet.range.[ 'a1 ' ].pastespecial;
d.从文件尾部开始粘贴:
excelapplication1.activesheet.range.pastespecial;
18) 插入一行或一列:
a. excelapplication1.activesheet.rows[2].insert;
b. excelapplication1.activesheet.columns[1].insert;
19) 删除一行或一列:
a. excelapplication1.activesheet.rows[2].delete;
b. excelapplication1.activesheet.columns[1].delete;
20) 打印预览工作表:
excelapplication1.activesheet.printpreview;
21) 打印输出工作表:
excelapplication1.activesheet.printout;
22) 工作表保存:
if not excelapplication1.activeworkbook.saved then
excelapplication1.activesheet.printpreview;
23) 工作表另存为:
excelapplication1.saveas( 'c:exceldemo1.xls ' );
24) 放弃存盘:
excelapplication1.activeworkbook.saved := true;
25) 关闭工作簿:
excelapplication1.workbooks.close;
26) 退出 excel:
excelapplication1.quit;
excelapplication1.disconnect;
(三) 使用delphi 控制excle二维图
在form中分别放入excelapplication, excelworkbook和excelworksheet
var asheet1,achart, range:variant;
1)选择当第一个工作薄第一个工作表
asheet1:=excelapplication1.workbooks[1].worksheets[1];
2)增加一个二维图
achart:=asheet1.chartobjects.add(100,100,200,200);
3)选择二维图的形态
achart.chart.charttype:=4;
4)给二维图赋值
series:=achart.chart.seriescollection;
range:=sheet1!r2c3:r3c9;
series.add(range,true);
5)加上二维图的标题
achart.chart.hastitle:=true;
achart.chart.charttitle.characters.text:=’ excle二维图’
6)改变二维图的标题字体大小
achart.chart.charttitle.font.size:=6;
相关推荐
ASP.NET(C#)Excel操作类是一个用于在.NET环境中处理Microsoft Excel文件的工具类库。在ASP.NET(C#)项目中,这类库通常用于读取、写入、修改或创建Excel工作簿,以实现数据导入导出等功能。以下是这个主题的一些...
C#与ASP.NET环境下的Excel操作 在C# ASP.NET项目中,操作Excel通常有两种主流方法:一是使用Microsoft Office Interop组件,二是借助第三方库如EPPlus或NPOI。给定的代码片段采用的是第一种方式,即利用Microsoft....
在ASP.NET/C#开发环境中,有时我们需要处理Excel文件,例如将数据库中的数据导出到预设的Excel模板中。在这种情况下,NPOI是一个非常有用的库,它允许开发者读写Microsoft Office格式的文件,包括Excel的.xlsx和.xls...
本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是Microsoft开发的一个用于构建动态网站、Web应用程序和服务的框架。它基于.NET Framework,提供了丰富的服务器控件、...
在ASP.NET编程中,生成Excel并导出下载是一项常见的需求,尤其在数据分析和报表生成时。以下是五种不同的实现方法: 1. **方法一:通过GridView** GridView控件是ASP.NET中用于显示数据的常用组件。这种方法适用于...
在ASP.NET和C#开发中,处理Excel文件是一项常见的任务,比如从Excel文件中导入数据到数据库,或者将数据库中的数据导出到Excel文件供用户下载。标题"Excel 导入导出 (asp.net/c#)"所涉及的核心知识点主要包括Excel...
在ASP.NET(C#)开发环境中,处理Excel文件是一项常见的任务,这通常涉及到数据的导入与导出。本文将详细讲解如何使用C#语言在ASP.NET中实现Excel文件的导入功能,以及涉及到的关键知识点。 首先,我们需要理解的是...
综上所述,ASP.NET中的Excel操作涉及到多种技术和策略,根据项目需求和环境,可以选择适合的方法。无论是使用Interop、Open XML SDK还是NPOI,都需要了解其基本原理,掌握如何创建、读取、写入和操作Excel文件,以便...
ASP.NET (C#) 生成Excel并导出Excel是一个常见的需求,在Web应用中,用户可能需要将数据库中的数据导出为Excel格式以便于分析或离线处理。在.NET框架下,我们可以利用C#语言和微软提供的COM互操作库Microsoft.Office...
在ASP.NET开发中,将Gridview控件中的数据导出到Excel是一种常见的需求,这有助于用户方便地管理和处理大量数据。下面将详细讲解如何实现这一功能,并解决中文乱码问题。 首先,我们需要理解ASP.NET Gridview的基本...
在ASP.NET中使用C#生成Excel文件通常有两种方法:一种是使用Microsoft Office Interop组件直接操作Excel应用程序;另一种是生成CSV文件,然后让用户将其打开为Excel格式。本文主要介绍前者的方法。 #### 代码实现 ...
在.NET开发环境中,C#与ASP.NET结合可以实现丰富的Web应用程序功能,其中之一就是在网页中嵌入Excel控件,使得用户可以在浏览器中直接编辑和浏览Excel表格。本实例以"C#.NET Web页面嵌入Excel控件,网页中在线编辑...
总的来说,Asp.net(C#)导出Excel是一项涉及到文件操作、数据处理和用户交互的复杂任务,但通过合理选择库和优化代码,我们可以实现高效、灵活的Excel导出功能。在开发过程中,一定要注意错误处理和资源释放,确保...
在.NET开发环境中,ASP.NET和C#的组合为我们提供了丰富的功能来处理各种Web应用程序的需求。在实际业务场景中,数据的导入导出是一项常见的任务,尤其是与Excel的交互,因为Excel是广泛使用的数据管理和分析工具。...
根据提供的文件信息,我们可以深入探讨ASP.NET C#中如何实现DataTable与Excel之间的互操作。这一技术在实际工作中非常实用,特别是在需要将数据从数据库导出到Excel文件供用户下载,或者将Excel文件中的数据导入到...
首先,我们需要了解ASP.NET是微软开发的一个用于构建Web应用程序的框架,而C#是一种广泛使用的编程语言,常与ASP.NET结合使用。在ASP.NET中导出Excel,通常有以下几种方法: 1. **使用Microsoft Office Interop**:...
在Asp.Net和C#开发环境中,创建Excel文件并实现动态下拉框赋值是一项常见的需求,这通常涉及到数据处理、界面设计以及与Excel交互的技术。以下是对这一知识点的详细说明: 首先,我们需要理解Asp.Net和C#的基础。...
在ASP.NET开发中,有时我们需要将大量的数据导出到Excel文件中,以便用户可以方便地进行数据管理和分析。特别是当数据量大到一个工作表无法容纳时,分Sheet导出就显得尤为重要。本文将深入探讨如何在ASP.NET环境中...
在ASP.NET开发中,有时我们需要将Excel数据导入到SQL Server数据库中,这通常涉及到C#编程语言的使用。本文将详细讲解如何通过C#实现这一功能,并在ASP.NET环境中搭建一个用户界面,允许用户上传Excel文件并将其内容...
在这个"asp.net 导出excel demo"中,MyNPOI可能就是NPOI的一个示例项目或者封装库,用于简化操作。 下面将详细介绍利用NPOI在ASP.NET中导出Excel的关键步骤: 1. **安装NPOI**: 首先,你需要在你的ASP.NET项目中...