using Aspose.Cells;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
namespace Sheets.common
{
public class OperateExcel
{
/// <summary>
/// 导出的文件保存到这里
/// </summary>
private static string ExportFilesPath = System.Configuration.ConfigurationManager.AppSettings["exportFilesPath"].ToString();
/// <summary>
/// 将DataTable生成Excel
/// </summary>
/// <param name="dtList">DataTable</param>
/// <param name="fileName">文件名</param>
/// <returns>返回文件路径名</returns>
#region DataTable生成Excel
public static string ExportToExcel(DataTable dtList, string fileName)
{
//这里是利用Aspose.Cells.dll 生成excel文件的
string pathToFiles = System.Web.HttpContext.Current.Server.MapPath(ExportFilesPath);
string etsName = ".xls";
//获取保存路径
string path = pathToFiles + fileName + etsName;
Workbook wb = new Workbook();
Worksheet ws = wb.Worksheets[0];
Cells cell = ws.Cells;
//设置行高
//cell.SetRowHeight(0, 20);
//表头样式
Style stHeadLeft = wb.Styles[wb.Styles.Add()];
stHeadLeft.HorizontalAlignment = TextAlignmentType.Left; //文字居中
stHeadLeft.Font.Name = "宋体";
stHeadLeft.Font.IsBold = true; //设置粗体
stHeadLeft.Font.Size = 14; //设置字体大小
Style stHeadRight = wb.Styles[wb.Styles.Add()];
stHeadRight.HorizontalAlignment = TextAlignmentType.Right; //文字居中
stHeadRight.Font.Name = "宋体";
stHeadRight.Font.IsBold = true; //设置粗体
stHeadRight.Font.Size = 14; //设置字体大小
//内容样式
Style stContentLeft = wb.Styles[wb.Styles.Add()];
stContentLeft.HorizontalAlignment = TextAlignmentType.Left;
stContentLeft.Font.Size = 10;
Style stContentRight = wb.Styles[wb.Styles.Add()];
stContentRight.HorizontalAlignment = TextAlignmentType.Right;
stContentRight.Font.Size = 10;
//赋值给Excel内容
for (int col = 0; col < dtList.Columns.Count; col++)
{
//Style stHead = null;
////Style stContent = null;
////设置表头
//string columnType = dtList.Columns[col].DataType.ToString();
//switch (columnType.ToLower())
//{
// //如果类型是string,则靠左对齐(对齐方式看项目需求修改)
// case "system.string":
// stHead = stHeadLeft;
// //stContent = stContentLeft;
// break;
// default:
// stHead = stHeadRight;
// //stContent = stContentRight;
// break;
//}
putValue(cell, dtList.Columns[col].ColumnName, 0, col);
for (int row = 0; row < dtList.Rows.Count; row++)
{
putValue(cell, dtList.Rows[row][col], row + 1, col);
}
}
wb.Save(path);
return ExportFilesPath + fileName + etsName;
}
#endregion
private static void putValue(Cells cell, object value, int row, int column)
{
//填充数据到excel中
cell[row, column].PutValue(value);
// cell[row, column].SetStyle(st);
}
}
}