读书人

asp.net 动态操作EXCEL的有关问题~跟w

发布时间: 2012-01-15 22:57:49 作者: rapoo

asp.net 动态操作EXCEL的问题~!跟winform有很大区别!
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection( "server=.;uid=sa;pwd=123456;database=test; ");
DataSet ds = SqlHelper.ExecuteDataset(conn, CommandType.Text, "select * from [user] ");
System.Data.DataTable tmpDataTable = ds.Tables[0];

Excel.Application excel = new Excel.ApplicationClass();

Excel._Workbook exb;
Excel._Worksheet exs;
exb = excel.Workbooks.Add(true);
exs = (Excel._Worksheet)exb.ActiveSheet;

int colIndex = 0;
int rowIndex = 1;

int rowSum = tmpDataTable.Rows.Count;
int ColSum = tmpDataTable.Columns.Count;

foreach (DataColumn dc in tmpDataTable.Columns)
{
colIndex++;
excel.Cells[rowIndex, colIndex] = dc.ColumnName;
}


foreach (DataRowView row in tmpDataTable.DefaultView)
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in tmpDataTable.Columns)
{
colIndex++;
if (col.DataType == System.Type.GetType( "System.DateTime "))
{
excel.Cells[rowIndex, colIndex] = (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString( "yyyy-MM-dd ");
}


else
if (col.DataType == System.Type.GetType( "System.String "))
{
excel.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
}
else
{
excel.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
}
}
}


//exs.get_Range是得到单元格的范围,get_Range(excel.Cells[1, 1], excel.Cells[1, ColSum])得到,第一行第一列到第1行最后一列的范围..Font.Size是设置这个范围内单元格的字体!
exs.get_Range(excel.Cells[1, 1], excel.Cells[1, ColSum]).Font.Size = 20;

exs.get_Range(excel.Cells[1, 1], excel.Cells[rowSum + 1, ColSum]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;

exs.get_Range(excel.Cells[1, 1], excel.Cells[rowSum + 1, ColSum]).Columns.AutoFit();

exs.get_Range(excel.Cells[1, 1], excel.Cells[rowSum + 1, ColSum]).Borders.LineStyle = 1;
//exs.get_Range(excel.Cells[1, 1], excel.Cells[rowSum + 1, ColSum]).Borders[Excel.XlBordersIndex.xlEdgeLeft].Weight = Excel.XlBorderWeight.xlThick;

exs.Name = "rr ";

excel.Visible = true;
}
同样代码在WINFORM执行会打开EXCEL,但是在WEBFORM里就不行.点击按扭后查看任务管理器会发现EXCEL进程,但是EXCEL却没有打开,高手指教什么回事.!@

[解决办法]
一看就知道是刚做webform的

web跟win不一样,你如果要在客户端打开一个EXCEL是没有权限的,再说你这样的代码都只是在服务端运行而已,跟客户端一点关系都没有
[解决办法]
在服务器端安装office,引用exel com
------解决方案--------------------


up
[解决办法]
up

读书人网 >C#

热点推荐