C# export generic data via Microsoft.Office.Interop.Excel
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# export generic data via Microsoft.Office.Interop.Excel,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1824字,纯文字阅读大概需要3分钟。
内容图文
![C# export generic data via Microsoft.Office.Interop.Excel](/upload/InfoBanner/zyjiaocheng/620/857be7e39b914f3e98812c78ca1c6d19.jpg)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Excel = Microsoft.Office.Interop.Excel; using System.Reflection; using Microsoft.Office.Interop.Excel; using System.Windows.Forms; using System.IO; namespace Framework.Utility { public class ExportHelper<T> where T:class,new() { public static void ExportData(IEnumerable<T> dataList,ref string fileName, bool isAutoDownload = false) { try { if (dataList == null || !dataList.Any()) { MessageBox.Show("The data source is null"); return; } var excelApp = new Excel.Application(); var workBook = excelApp.Workbooks.Add(); var workSheet = (Worksheet)workBook.Worksheets[1]; workSheet.Columns.AutoFit(); var firstRowData = dataList.FirstOrDefault(); var pis = firstRowData.GetType().GetProperties().Where(x => !x.GetMethod.IsVirtual).ToArray(); if (pis != null && pis.Any()) { for (int i = 0; i < pis.Count(); i++) { workSheet.Cells[1, i + 1] = pis[i].Name; } int row = 1; foreach (var data in dataList) { row++; for (int i = 0; i < pis.Count(); i++) { var objValue = pis[i].GetValue(data); workSheet.Cells[row, i + 1] = objValue?.ToString(); } } } //SaveFileDialog sfd = new SaveFileDialog(); //sfd.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*"; //sfd.FileName = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}"; //if (sfd.ShowDialog()==DialogResult.OK) //{ // workBook.SaveCopyAs(sfd.FileName); //} //string fileName= $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}.xlsx"; fileName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}.xlsx"); workBook.SaveCopyAs(fileName); } catch (Exception ex) { MessageBox.Show(ex.StackTrace); } } } }
ExportHelper<SalesOrderDetail>.ExportData(SalesList.ToList(), ref fileName);
内容总结
以上是互联网集市为您收集整理的C# export generic data via Microsoft.Office.Interop.Excel全部内容,希望文章能够帮你解决C# export generic data via Microsoft.Office.Interop.Excel所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。