首页 > 编程语言 >xiaofeng.NET系列之 netcore c#快速导出数据CSV格式 winfrom wpf

xiaofeng.NET系列之 netcore c#快速导出数据CSV格式 winfrom wpf

时间:2023-05-22 18:34:32浏览次数:39  
标签:val xiaofeng c# netcore dic Add var new csv

一个导出button

nuget 搜索 

using XiaoFeng.IO;
using XiaoFeng;

 

  private void button1_Click(object sender, EventArgs e)
        {

            var savedlg = new FolderBrowserDialog()
            {
                Description = "选择保存的路径",
                UseDescriptionForTitle = true,
                RootFolder = Environment.SpecialFolder.Desktop,
                ShowNewFolderButton = true
            };
            if (savedlg.ShowDialog() == DialogResult.OK)
            {

                var path = savedlg.SelectedPath + "\\" + DateTime.Now.ToString("yyyyMMddHHmmssfffffff") + ".csv";
                var list = DeviceInfoModel.Create.QueryableX.Take(100000).ToList();

                var csv = new CsvStreamWriter(path, false, Encoding.UTF8);
                Dictionary<string, string> dic = new Dictionary<string, string>()
                {
                   { "ID","主键编码" },
                   { "DeviceId","设备编码" },
                   { "Name","名称" },
                   { "InspectionQuantity","检测数量" },
                   { "NumberOfAlarms","告警数量" },
                   { "PlayUrl","播放地址" },
                   { "Remark","备注" },
                   { "CreateTime","创建时间" },
                };

                var lists = new List<List<string>>();
                var l = new List<string>();
//DeviceInfoModel 是实体类 typeof(DeviceInfoModel).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).Each(a => { if (!dic.Keys.Contains(a.Name, StringComparer.OrdinalIgnoreCase)) return; //l.Add(a.GetDescription()); 读书字段属性的描述文本 l.Add(dic[a.Name]); }); lists.Add(l); list.Each(a => { var l = new List<string>(); a.AllKeys.Each(b => { if (!dic.Keys.Contains(b, StringComparer.OrdinalIgnoreCase)) return; var val = a[b]; if (val is DateTime dt) val = "'" + dt.ToString("yyyy-MM-dd HH:mm:ss"); l.Add(val.ToString()); }); lists.Add(l); }); csv.Write(lists); csv.Close(); csv.Dispose(); MessageBox.Show("导出成功!"); } }

 

标签:val,xiaofeng,c#,netcore,dic,Add,var,new,csv
From: https://www.cnblogs.com/zhaocici/p/17421416.html

相关文章

  • Codeforces Gym 103119B - Boring Problem(高斯消元)
    考虑建出AC自动机,朴素做法是高斯消元,\(f_i=\sum\limits_{j=0}^{k-1}f_{to_{i,j}}p_j+1\),复杂度\(O(n^3m^3)\),不能接受。考虑优化高斯消元的过程,我们定义以下节点为“关键点”:根节点对于一个trie树(也就是未经过AC自动机getfail操作得到的树)上有超过两个儿子的节点\(x......
  • Checkra1n Linux系统U盘制作及启动方法
    说起苹果手机越狱工具,那么不得不提起checkra1n,这是一款使用硬件漏洞打造而成的越狱工具,可轻松实现iPhoneX以下设备实现永久越狱(包括X),受到了不少用户的喜爱与好评,但一直以来,该工具只能在Mac或者“黑苹果”系统上进行使用,那么Mac的Windows用户想越狱怎么办呢?不要担心,此次小编......
  • C++的cout
    ▲setw(n)用法:通俗地讲就是预设宽度如cout<<setw(5)<<255<<endl;结果是:(空格)(空格)255▲setfill(charc)用法:就是在预设宽度中如果已存在没用完的宽度大小,则用设置的字符c填充如cout<<setfill('@')<<setw(5)<<255<<endl;结果是:@@255▲setbase(i......
  • MobTech MobPush|ChatGPT辅助消息推送,实现文案千人千版
    消息推送的千人千面困境为了吸引用户的注意力,增加用户的活跃度和留存率,提升应用的流量和收入,手机应用程序往往希望千人千面地向用户推送通知,即根据用户的特征和需求,为每个用户推送合适的消息内容,以有针对性地获得用户的关注。目前,消息推送通过智能标签能力已经可以实现用户画像千人......
  • 2..NetCore部署Linux环境搭建
    1.查考链接 https://www.cnblogs.com/wugh8726254/p/15231372.html2.https://zhuanlan.zhihu.com/p/3447148063.https://blog.csdn.net/qq_39173779/article/details/1295077924.https://blog.csdn.net/SIXGODrr/article/details/1253723385.https://zhuanlan.zhihu.com/p/59......
  • cobalt strike
        ......
  • Weakly Supervised Temporal Action Localization via Representative Snippet Knowle
    0.前言相关资料:arxivgithub论文解读论文基本信息:领域:弱监督时序动作定位发表时间:CVPR2022(2022.3.14)1.针对的问题许多现有的方法试图生成伪标签来弥补分类和定位之间的差异,但通常只使用有限的上下文信息,即每个片段内的信息,来生成伪标签。2.主......
  • 痞子衡嵌入式:MCUBootUtility v5.0发布,初步支持i.MXRT1180
    --痞子衡维护的NXP-MCUBootUtility工具距离上一个大版本(v4.0.0)发布过去4个多月了,期间痞子衡也做过两个小版本更新,但不足以单独介绍。这一次痞子衡为大家带来了全新大版本v5.0.0,这次更新主要是想和大家特别聊聊恩智浦新一代i.MXRT旗舰RT1180。一、v4.1-v5.0更新记录-......
  • 2023QECON参会有感
    前言今日参加了在深圳举办的QECON全球质量&效能会议,为期两天的时间里听取了很多业内先进的软件工程实践案例以及理论知识,以下做出相关总结。收获关于AI毫无疑问Chat-GPT成为了本次大会上最为火热的讨论话题,开局QECON朱少民老师就指出GPT-4将开启“软件工程3.0”新时代,今年是......
  • 命令模式(Command Pattern)
    一、模式动机命令模式(CommandPattern)是一种常用的行为型设计模式,它将请求发送者与请求接收者解耦,请求发送者通过命令对象来间接引用接收者,使得系统具有更好的灵活性,可以在不修改现有系统源代码的情况下将相同的发送者对应不同的接收者,也可以将多个命令对象组合成宏命令,还可以在......