首页 > 开发 > 综合 > 正文

以实例说明如何使用C#从数据库中提取数据,按要求自动生成定制的Excel表格

2024-07-21 02:18:42
字体:
来源:转载
供稿:网友
最近因为需要学习了一下使用c#操作excel表格,现在把我使用c#如何定制表格的过程提供给需要的兄弟:
/*从数据库提取数据*/
string strconn="packet size=4096;user id=sa;data source=localhost;persist security info=true;initial catalog=database;password=sa";
sqlconnection sqlconn=new sqlconnection(strconn);
sqlconn.open();
sqldataadapter sqldataadapter=new sqldataadapter("select * from [数据表]",sqlconn);
dataset myds=new dataset();
sqldataadapter.fill(myds);
/*在execl中建立“成果表”的格式表格*/
excel.applicationclass excel=new excel.applicationclass();
excel.application.workbooks.add(true);
excel.cells[1,1] = "单元名称" ;
excel.cells[1,2]="指标及其描述、特征值和权重";
excel.cells[1,23]="属性";
excel.cells[2,2]="d";
excel.cells[2,5]="r";
excel.cells[2,8]="a";
excel.cells[2,11]="s";
excel.cells[2,14]="t";
excel.cells[2,17]="i";
excel.cells[2,20]="c";
excel.cells[2,23]="结果";
excel.cells[2,24]="等级";
excel.cells[3,2]="描述";
excel.cells[3,3]="特征值";
excel.cells[3,4]="权重";
excel.cells[3,5]="描述";
excel.cells[3,6]="特征值";
excel.cells[3,7]="权重";
excel.cells[3,8]="描述";
excel.cells[3,9]="特征值";
excel.cells[3,10]="权重";
excel.cells[3,11]="描述";
excel.cells[3,12]="特征值";
excel.cells[3,13]="权重";
excel.cells[3,14]="描述";
excel.cells[3,15]="特征值";
excel.cells[3,16]="权重";
excel.cells[3,17]="描述";
excel.cells[3,18]="特征值";
excel.cells[3,19]="权重";
excel.cells[3,20]="描述";
excel.cells[3,21]="特征值";
excel.cells[3,22]="权重";

excel.get_range(excel.cells[ 1 , 1 ],excel.cells[ 3 ,1 ]).mergecells=true;
excel.get_range(excel.cells[ 1 , 2 ],excel.cells[ 1 ,22 ]).mergecells=true;
excel.get_range(excel.cells[ 1 , 23 ],excel.cells[ 1 ,24 ]).mergecells=true;
excel.get_range(excel.cells[ 2 , 2 ],excel.cells[ 2 ,4 ]).mergecells=true;
excel.get_range(excel.cells[ 2 , 5 ],excel.cells[ 2 ,7 ]).mergecells=true;
excel.get_range(excel.cells[ 2 , 8],excel.cells[ 2 ,10 ]).mergecells=true;
excel.get_range(excel.cells[ 2 ,11 ],excel.cells[ 2 ,13 ]).mergecells=true;
excel.get_range(excel.cells[ 2 , 14 ],excel.cells[ 2 ,16 ]).mergecells=true;
excel.get_range(excel.cells[ 2 , 17 ],excel.cells[ 2 ,19 ]).mergecells=true;
excel.get_range(excel.cells[ 2 , 20 ],excel.cells[ 2 ,22 ]).mergecells=true;
excel.get_range(excel.cells[ 2 , 23 ],excel.cells[ 3 ,23 ]).mergecells=true;
excel.get_range(excel.cells[ 2 , 24 ],excel.cells[ 3 ,24 ]).mergecells=true;

/*往excel格式表格中写入数据*/
int waterdatarows=myds.tables[0].rows.count;
int waterdatacols=myds.tables[0].columns.count;
for(int i=1;i<=waterdatarows;i++)
{
excel.cells[i+3,1]=myds.tables[0].rows[i-1].itemarray.getvalue(0);
for(int j=1;j<=7;j++)
{
excel.cells[i+3,3*j]=myds.tables[0].rows[i-1].itemarray.getvalue(j);
excel.cells[i+3,3*j+1]=ww[j-1];
}
excel.cells[i+3,23]=ds.tables[0].rows[i-1].itemarray.getvalue(1);
excel.cells[i+3,24]=ds.tables[0].rows[i-1].itemarray.getvalue(3);
}
excel.visible=false;
excel.displayalerts=false;
//excel.worksheetclass worksheet=(excel.worksheetclass)excel.activesheet;
excel.save();
excel.application.workbooks.close();
excel.application.quit();
excel.quit();
system.runtime.interopservices.marshal.releasecomobject (excel);
killprocess("excel.exe");
gc.collect();



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表