码迷,mamicode.com
首页 > Web开发 > 详细

文件导出 Aspose

时间:2018-11-13 20:25:05      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:elf   string   rop   tab   alignment   error   col   column   inf   

/// <summary>
/// 使用Aspose读取Excel数据
/// </summary>
public class ExcelHelperCore
{
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="fields"></param>
/// <param name="list"></param>
/// <param name="fileName"></param>
/// <returns></returns>
public static OperationResult ExportExcel<T>(Dictionary<string, string> fields, IEnumerable<T> list, string fileName)
where T : new()
{
if (fields == null || fields.Count == 0)
{
return new OperationResult(OperationResultType.ParamError, "先指定字段");
}

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
var cells = sheet.Cells;
Style style = workbook.Styles[workbook.Styles.Add()];//新增样式
style.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style.Font.Name = "宋体";//文字字体
style.Font.Size = 10;//文字大小
style.Font.IsBold = true;//粗体
int i = 0;
foreach (KeyValuePair<string, string> keyValuePair in fields)
{
cells[0, i].SetStyle(style); //给单元格关联样式
cells.SetRowHeight(0, 18); //设置行高
cells.SetColumnWidth(i, 16);//设置列宽
//列头
cells[0, i].PutValue(keyValuePair.Value);
i++;
}

PropertyInfo[] properties = new T().GetType().GetProperties();
int row = 1;
foreach (T item in list)
{
i = 0;
foreach (KeyValuePair<string, string> keyValuePair in fields)
{
foreach (PropertyInfo property in properties)
{
if (property.Name == keyValuePair.Key)
{
if (property.PropertyType.Name.StartsWith("DateTime"))
{
var time = Convertor.ConvertToDateTime(property.GetValue(item), DateTime.MinValue);
if (time == DateTime.MinValue || time < new DateTime(2010, 1, 1))
{
cells[row, i].PutValue("");
}
else
{
cells[row, i].PutValue(time.ToString("yyyy-MM-dd HH:mm"));
}
}
else
{
cells[row, i].PutValue(property.GetValue(item));
}
}
}

i++;
}
row++;
}

workbook.Save(HttpContext.Current.Response, fileName, ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Xlsx));
return new OperationResult(OperationResultType.Success, "导出成功");
}

/// <summary>
/// 表单导出
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="colums"></param>
/// <param name="property"></param>
/// <param name="list"></param>
/// <param name="fileName"></param>
/// <returns></returns>
public static OperationResult ExportExcelForm<T>(List<string> colums, string property, IEnumerable<IEnumerable<T>> list, string fileName)
where T : new()
{
if (colums == null || colums.Count == 0)
{
return new OperationResult(OperationResultType.ParamError, "先指定字段");
}

var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
var cells = sheet.Cells;
Style style = workbook.Styles[workbook.Styles.Add()];//新增样式
style.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style.Font.Name = "宋体";//文字字体
style.Font.Size = 10;//文字大小
style.Font.IsBold = true;//粗体
int i = 0;
#region collumn set
foreach (var c in colums)
{
cells[0, i].SetStyle(style); //给单元格关联样式
cells.SetRowHeight(0, 18); //设置行高
cells.SetColumnWidth(i, 16);//设置列宽
//列头
cells[0, i].PutValue(c);
i++;
}
#endregion

if (null == list || !list.Any())
{
return new OperationResult(OperationResultType.ParamError, "导出内容不能为空");
}

PropertyInfo[] properties = new T().GetType().GetProperties();
int row = 1;
foreach (IEnumerable<T> lst in list)
{
i = 0;
foreach (T item in lst)
{
if (i > colums.Count)
{
break;
}
foreach (PropertyInfo p in properties)
{
if (p.Name == property)
{
cells[row, i].PutValue(p.GetValue(item));
}
}
i++;
}
row++;
}

workbook.Save(HttpContext.Current.Response, fileName, ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Xlsx));
return new OperationResult(OperationResultType.Success, "导出成功");
}

public static DataTable ExcelToDatatalbe(String strFileName)//导入
{
Workbook book = new Workbook(strFileName);
Worksheet sheet = book.Worksheets[0];
Cells cells = sheet.Cells;
//获取excel中的数据保存到一个datatable中
DataTable dt_Import = cells.ExportDataTableAsString(1, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, false);
// dt_Import.
return dt_Import;
}
}

文件导出 Aspose

标签:elf   string   rop   tab   alignment   error   col   column   inf   

原文地址:https://www.cnblogs.com/zlj-rechio/p/9953662.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!