哈哈,这个只能找我了,过程有点复杂,我研究了好几天,
1.你要下载一个.dll,网上很多的,Aspose.Excel.dll
这是因为空间商的服务器没有windows组件,就是说无法运行写入excel的操作,
但用了这个.dll,照样可以生成excel!
2.按照这个.dll的说明,调用其中的方法就行。
俺贴出成功例子一个如下:
提取dataset中的数据,生成excel文档的程序
DataSet ds = odd.Returnds(sel);
Excel excel = new Excel();
Worksheet sheet = excel.Worksheets;
sheet.Name = DateTime.Now.Year.ToString() + "年" + DateTime.Now.Month.ToString() + "月" + DateTime.Now.Day.ToString() + "日" + DateTime.Now.Hour.ToString() + "时" + "生成的订单表";//生成的excel表名
Cells cels = sheet.Cells;
cels[1, 1].PutValue("订餐时间");
cels[1, 2].PutValue("订餐人");
cels[1, 3].PutValue("邮编");
cels[1, 4].PutValue("地址");
cels[1, 5].PutValue("电话");
cels[1, 6].PutValue("留言");
cels[1, 7].PutValue("处理时间");
cels[1, 8].PutValue("菜品数");
cels[1, 9].PutValue("总价($)");//以上为第一列
for (int j = 2; j < ds.Tables.Rows.Count + 2; j++)
{
for (int k = 1; k < 8; k++)
{
cels[j, k].PutValue(ds.Tables.DefaultView[j - 2][k - 1].ToString());
}
string Cdate = ds.Tables.DefaultView[j - 2].ToString();
string selCtime = "select Price,countP,Ctime from tb_orderAll where Ctime=#" + Cdate + "#";
DataSet dsCt = odd.Returnds(selCtime);
double priceAll = 0;
int cPAll = 0;
for (int l = 0; l < dsCt.Tables.Rows.Count; l++)
{
priceAll += Convert.ToDouble(dsCt.Tables.DefaultView[l]["Price"]) * Convert.ToInt32(dsCt.Tables.DefaultView[l]["countP"]);
cPAll += Convert.ToInt32(dsCt.Tables.DefaultView[l]["countP"]);
}
cels[j, 8].PutValue(cPAll.ToString());
cels[j, 9].PutValue(priceAll.ToString());
}
//做到这0827,下一步循环取出ds中值到第二行以下
string excelN = DateTime.Now.ToString().Replace("/", "-").Replace(":", "-") + "order.xls"; //文件名不能包含:和/
excel.Save(Server.MapPath("..\\CreateExcel\\" + excelN));