首页 > 代码库 > aspose.cells excel表格导入导出
aspose.cells excel表格导入导出
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Reflection;using System.IO;using Aspose.Cells;using System.Data;using System.ComponentModel;using System.Configuration;namespace src.Common{ public static class Excel { /// <summary> /// list转为excel保存 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list">数据源</param> /// <param name="saveWay">保存路径</param> /// <param name="name">文件名</param> /// <returns></returns> public static string ListToExcel<T>(List<T> list, string saveWay, string name) { Workbook workBook = new Workbook(); Worksheet worksheet = workBook.Worksheets[0]; Cells cells = worksheet.Cells; Type t = typeof(T); string tempName = ""; int i = 0, k = 1; foreach (PropertyInfo p in t.GetProperties()) { DescriptionAttribute attr = (DescriptionAttribute)p.GetCustomAttributes(typeof(DescriptionAttribute), true).FirstOrDefault(); if (attr != null) { tempName = attr.Description; } else { tempName = p.Name; } cells[0, i].PutValue(tempName); Style style = cells[0, i].GetStyle(); style.BackgroundColor = System.Drawing.Color.Blue; style.HorizontalAlignment = TextAlignmentType.Center; cells[0, i].SetStyle(style); i++; } foreach (T tt in list) { i = 0; foreach (PropertyInfo p1 in t.GetProperties()) { if (p1.GetValue(tt, null) != null) { cells[k, i].PutValue(p1.GetValue(tt, null).ToString()); } i++; } k++; } //row.Style.BackgroundColor = System.Drawing.Color.Blue; //row.Style.HorizontalAlignment = TextAlignmentType.Center; worksheet.AutoFitColumns(); worksheet.AutoFitRows(); string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"; string baseWay = System.AppDomain.CurrentDomain.BaseDirectory; string currentTime = DateTime.Now.ToString("yyyy-MM"); string fileWay = baseWay + saveWay + "\\" + currentTime; if (!File.Exists(fileWay)) { Directory.CreateDirectory(fileWay); } workBook.Save(fileWay + "\\" + name + fileName); return ConfigurationManager.AppSettings["Domain"] + "/" + saveWay + "/" + currentTime + "/" + name + fileName; } /// <summary> /// 表格转为datatable /// </summary> /// <param name="filepath"></param> /// <param name="datatable"></param> /// <param name="error"></param> /// <returns></returns> public static bool ExcelToDataTable(string filepath, out DataTable datatable, out string error) { error = ""; datatable = null; try { if (!File.Exists(filepath)) { error = "文件不存在"; datatable = null; return false; } Workbook workbook = new Workbook(filepath); Worksheet worksheet = workbook.Worksheets[0]; datatable = worksheet.Cells.ExportDataTable(0, 0, worksheet.Cells.MaxRow + 1, worksheet.Cells.MaxColumn + 1); return true; } catch (Exception ex) { error = ex.Message; return false; } } /// <summary> /// datatable转list,第一行为列名 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="dt"></param> /// <returns></returns> public static List<T> ToList1<T>(this DataTable dt, string primaryKey) { List<T> ts = new List<T>(); Type t = typeof(T); List<object> cols = dt.Rows[0].ItemArray.ToList(); bool isNull = false; if (!cols.Contains(primaryKey)) { return null; } else { for (int i = 1; i < dt.Rows.Count - 1; i++) { isNull = false; T tt = System.Activator.CreateInstance<T>(); string tempName = ""; foreach (PropertyInfo p in t.GetProperties()) { DescriptionAttribute attr = (DescriptionAttribute)p.GetCustomAttributes(typeof(DescriptionAttribute), true).FirstOrDefault(); if (attr != null) { tempName = attr.Description; } else { tempName = p.Name; } if (cols.Contains(tempName)) { object value =http://www.mamicode.com/ dt.Rows[i][cols.IndexOf(tempName)]; if (tempName == primaryKey && (value =http://www.mamicode.com/= null||string.IsNullOrEmpty(value.ToString()))) { isNull = true; } if (value != null && (!string.IsNullOrEmpty(value.ToString()))) { if (!typeof(DBNull).Equals(p.PropertyType.GetType())) { p.SetValue(tt, Convert.ChangeType(value, p.PropertyType), null); } else { p.SetValue(tt, null, null); } } } } if (!isNull) { ts.Add(tt); } } return ts; } } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。