DataTable dtTitle = ds.Tables[];
DataTable dtDetail = ds.Tables[];
int columns = dtTitle.Columns.Count; string error = "";//导出出错的原因
Aspose.Cells.Workbook wb = new Aspose.Cells.Workbook(); //工作簿
Worksheet sheet = wb.Worksheets[]; //第一张工作表
Cells cells = sheet.Cells;//单元格
cells.SetColumnWidth(, 15f);//第一列的宽
cells.SetColumnWidth(, 10f);
cells.SetColumnWidth(, 10f);
cells.SetColumnWidth(, 10f);
DataRow dr = null;
string p = "";
if (dtTitle != null && dtTitle.Rows.Count > )
{
try
{
#region //为第一行表头单元格添加样式
Aspose.Cells.Style styleTitle = wb.Styles[wb.Styles.Add()];//新增样式
//设置居中
styleTitle.HorizontalAlignment = TextAlignmentType.Center;
//设置背景颜色
styleTitle.ForegroundColor = System.Drawing.Color.FromArgb(, , );
styleTitle.Pattern = BackgroundType.Solid;
//粗体
styleTitle.Font.IsBold = true; //设置边框
//styleTitle.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
//styleTitle.Borders[BorderType.LeftBorder].Color = System.Drawing.Color.Black;
//styleTitle.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
//styleTitle.Borders[BorderType.RightBorder].Color = System.Drawing.Color.Black;
//styleTitle.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
//styleTitle.Borders[BorderType.TopBorder].Color = System.Drawing.Color.Black;
//styleTitle.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
//styleTitle.Borders[BorderType.BottomBorder].Color = System.Drawing.Color.Black;
#endregion #region 拼接表头
for (int i = ; i < dtTitle.Rows.Count; i++)
{
dr = dtTitle.Rows[i]; #region 学号 姓名 均分 总分
cells.Merge(, , , );//合并单元格
cells[, ].PutValue(dr["F4"]);//填写内容
cells[, ].SetStyle(styleTitle);//表头样式 cells.Merge(, , , );//合并单元格
cells[, ].PutValue(dr["F5"]);//填写内容
cells[, ].SetStyle(styleTitle);//表头样式 cells.Merge(, , , );//合并单元格
cells[, ].PutValue(dr["F9"]);//填写内容
cells[, ].SetStyle(styleTitle);//表头样式 cells.Merge(, , , );//合并单元格
cells[, ].PutValue(dr["F8"]);//填写内容
cells[, ].SetStyle(styleTitle);//表头样式 cells.Merge(, , , columns - );//合并单元格
cells[, ].PutValue("作业分数记录");//填写内容
cells[, ].SetStyle(styleTitle);//表头样式
#endregion for (int n = ; n < columns; n++)
{
p = "F" + (n + );
cells[, n - ].PutValue(dr[p]);//填写内容
cells[, n - ].SetStyle(styleTitle);//表头样式
cells.SetColumnWidth(n - , 15f);
}
}
//让各列自适应宽度
//sheet.AutoFitColumns();
#endregion
}
catch (Exception e)
{
error += "DataTableToExcel-Error:" + e.Message;
}
}
if (dtDetail != null && dtDetail.Rows.Count > )
{
Aspose.Cells.Style styleCell = wb.Styles[wb.Styles.Add()];//新增样式
//设置居中
//styleCell.HorizontalAlignment = TextAlignmentType.Center;
float result=0.00f;
for (int i = ; i < dtDetail.Rows.Count; i++)
{
dr = dtDetail.Rows[i]; #region 学号 姓名 均分 总分
styleCell.HorizontalAlignment = TextAlignmentType.Left;
cells[i + , ].PutValue(dr["F4"]);//填写内容
cells[i + , ].SetStyle(styleCell);//表头样式 styleCell.HorizontalAlignment = TextAlignmentType.Center;
cells[i + , ].PutValue(dr["F5"]);//填写内容
cells[i + , ].SetStyle(styleCell);//表头样式 styleCell.HorizontalAlignment = TextAlignmentType.Right;
if (float.TryParse(dr["F9"].ToString(), out result))
{
cells[i + , ].PutValue(result.ToString("0.00"));//填写内容
}
else
{
cells[i + , ].PutValue(dr["F9"]);//填写内容
}
cells[i + , ].SetStyle(styleCell);//表头样式 if (float.TryParse(dr["F8"].ToString(), out result))
{
cells[i + , ].PutValue(result.ToString("0.00"));//填写内容
}
else
{
cells[i + , ].PutValue(dr["F8"]);//填写内容
}
cells[i + , ].SetStyle(styleCell);//表头样式 #endregion
for (int n = ; n < columns; n++)
{
p = "F" + (n + );
if (float.TryParse(dr[p].ToString(), out result))
{
cells[i + , n - ].PutValue(result.ToString("0.00"));//填写内容
}
else
{
cells[i + , n - ].PutValue(dr[p]);//填写内容
}
cells[i + , n - ].SetStyle(styleCell);//样式
}
}
} string finalPath = MapPath("~" + "/UploadFiles/ExportClass/" + filename + ".xls");
wb.Save(finalPath);
//进行编码,便于中文名文件下载
string SiteRoot = "http://" + Request.Url.Authority.ToString() + "/UploadFiles/ExportClass/" + Uri.EscapeDataString(filename + ".xls"); //下载excel
ClientScript.RegisterStartupScript(this.GetType(), "", ",<script type='text/javascript'>window.open('" + SiteRoot + "');</script>");

aaarticlea/png;base64,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