将数据绑定DataGrid并输出Excel文档的数据模型问题

【WPF】将DataGrid内容导出到Excel 引言在完成将DataGrid的内容导出到Excel的时候,参考了一个印度小伙的文章http://www.codeproject.com/Articles/120480/Export-to-Excel-Functionality-in-WPF-DataGrid,很清晰,结合着自己的实际项目写了这篇文章,分享给大家。步骤一:创建窗体,绘制datagrid这里不多讲,直接拖控件就行。二:为datagrid 阅读详情

一个值得注意的小问题。

在写一个将数据绑定DataGrid并输出到Excel文档的方法的时候,碰到了一个小小的问题,就是绑定的数据都是齐全的,但是输出的时候,总是少了几列的内容。

反复检查之下,终于发现了问题:

ExportToExcel方法如下:

 #region ExportToExcel:将数据绑定DataGrid并输出到文件 | Eason.L / 2011.08.09
        /// <summary>
        /// 将数据绑定DataGrid并输出到文件
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="exportData"></param>
        public void ExportToExcel(string fileName, List<ExcelModels> exportData)
        {
            if (exportData != null)
            {
                // 建立 DataGrid 用于绑定数据并格式化输出
                System.Web.UI.WebControls.DataGrid dgExport = new System.Web.UI.WebControls.DataGrid();
                // 获取当前对话内容
                System.Web.HttpContext curContext = System.Web.HttpContext.Current;
                // 创建 IO String 用于导出并返回excel文件
                System.IO.StringWriter strWriter = new System.IO.StringWriter();
                System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
                
                // 需要重新定义一个无分页的DataGrid               
                dgExport.DataSource = exportData;
                dgExport.AllowPaging = false;
                dgExport.DataBind();

                // 返回客户端
                dgExport.RenderControl(htmlWriter);

                System.IO.FileInfo file = new System.IO.FileInfo(fileName);
                file.Delete();

                // 设置编码和附件格式
                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
                curContext.Response.Charset = "UTF-8"; 
                // 输出到文件流
                curContext.Response.Write(strWriter.ToString());                
                curContext.Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + System.Web.HttpUtility.UrlEncode(Path.GetFileName(fileName), System.Text.Encoding.GetEncoding("UTF-8")) + "\"");
                curContext.Response.End();
            }
        }
 #endregion

其中 ExcelModels 的定义如下:

public class _200Models
    {
        /// <summary>
        /// 主叫号码
        /// </summary>
        public string FromNum { get; set; }

        /// <summary>
        /// 被叫号码
        /// </summary>
        public string ToNum { get; set; }

        /// <summary>
        /// 开始时间
        /// </summary>
        public DateTime? StartTime { get; set; }

        /// <summary>
        /// 结束时间
        /// </summary>
        public DateTime? EndTime { get; set; }        

        /// <summary>
        /// 时长
        /// </summary>
        public int? Timings { get; set; }

        /// <summary>
        /// 计费
        /// </summary>
        public int? Fee { get; set; }

        /// <summary>
        /// 计费标识
        /// </summary>
        public int? FeeMark { get; set; }
    }

导出的 Excel 文档中,只有非空字段属性 FromNum 和 ToNum 的内容,其他可空属性全部没有了~
只有将所有可空属性类型的?去掉,变成非空类型之后,才完整地输出了所有的数据。

实现类似Excel的筛选功能:在WPF中使用DataGrid控件 通过自定义筛选功能,我们成功地增强了WPF中的DataGrid控件,使其具备类似Excel的筛选功能。通过添加文本框和按钮,并在按钮点击事件中使用ICollectionView的筛选功能,我们可以根据用户输入的关键字来对DataGrid中的数据进行快速筛选。在WPF应用程序中,我们经常需要显示和编辑大量的数据。通过按照以上步骤,你可以在WPF应用程序中实现一个类似Excel的筛选功能的DataGrid控件。要实现筛选功能,我们可以添加一个文本框和一个按钮来接收用户输入,并在按钮点击事件中进行筛选操作。 阅读详情

相关推荐

C#实现DataGrid数据导出到Excel教程

NET框架中,DataGrid控件是一个重要的用户界面元素,主要用于以表格形式显示数据集合。它不仅能够呈现数据,还允许用户对数据进行交互式操作,如排序、分页以及行的增删改查等。DataGrid控件广泛应用于数据密集型应用程序中,特别是在展示复杂数据结构时。

weixin_42284380的博客 1132

Vb6.0 DataGrid 导出Excel文件

'汇出Excel Private Sub cmdexport_Click() Dim i, r, c As Integer Dim newxls As New Excel.Application    '声明application 对象 Dim newbook As Ne

知识贵在分享 4679

WPF中DataGrid实现Excel导入导出完整源码示例

DataGrid是 WPF 中用于展示结构化数据的核心控件之一,支持高度自定义和数据绑定机制,广泛应用于企业级数据展示场景。其基本结构由行和列组成,每列可绑定到数据源的特定属性,并支持排序、编辑、筛选等交互功能。核心属性包括::绑定数据源,如DataTable或。:控制是否自动生成列。:是否允许用户添加新行。常用事件包括:LoadingRow:行加载时触发,用于样式控制。:选中项变化时执行业务逻辑。掌握DataGrid。

weixin_35006125的博客 833

Vb6导出数据到Excel或word文件中

VB6.0报表导出的实现一例,将内容导出到Excel中,或者导出到Word文件中,在平时挺实用,不过代码只测试了下,可以用,核心代码如下: VERSION 5.00Object = "{67397AA1-7FB1-11D0-B148-00A0C922E820}#6.0#0"; "MSADODC.OCX"Object = "{CDE57A40-8B86-11D0-B3C6-00A0C90AEA82...

weixin_34323858的博客 1274

VB6 DataGrid中的数据导出到Excel

把DataGridView导出到Excel文件的示例,己经经过调试,下载即可使用~

vb DataGrid导出excel例子

vb DataGrid导出excel例子,学习好资料,简单易懂

vb6的导出到Excel的函数

 vb6的导出到Excel的函数Private Sub Command1_Click()  Dim i As Integer  Dim j As Integer  Dim k As Integer  Dim xlApp As Excel.Application  Dim xlBook As Excel.Workbook  Dim xlSheet As Excel.Worksheet  Se

yuxuetaoxp的专栏 1148

【智慧城市】GIS数据获取-获取道路/水路数据

【GIS数据获取】获取道路/水路数据

qq_16599281的博客 4751

C# WPF读取Excel数据并把数据绑定到DataGrid中

新建一个WPF项目: 建立好了打开MainWindow.cs页面 首先读取Excel数据,如下所示:   public DataTable GetData(string Path)     //写一个方法  {         string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + Path + "

a123455o的博客 1万+

GPS数据处理必备:IGS精密星历下载与使用全攻略(附武汉大学/CDDIS/CODE/GFZ地址)

本文为GPS/GNSS数据处理者提供了IGS精密星历的完整下载与使用指南。详细解析了最终、快速、超快速三种精密星历产品的区别与选择策略,并手把手教学如何从武汉大学、CDDIS、CODE、GFZ四大主流数据中心高效获取数据,涵盖文件命名规则解析及自动化下载脚本,助力科研与工程应用。

weixin_29234239的博客 684

Bybit面经

这段总结描述了求职者在Bybit面试过程中的经历和相关问题,包括面试内容、求职者向面试官提问的问题以及关于Bybit的信息

郑泽洲的博客 2582

DataGrid列表信息保存为EXCEL到指定的路径 ---------继续DataGrid在WPF的数据绑定

一.许多WPF或者Winform程序在保存数据时,会以EXCEL或者文本的形式展现可视化界面的数据,本文就简单介绍下将DataGrid列表信息保存为EXCEL到指定的路径下,例子很简单,用的着的直接用吧。 没有太多的理论性东东,下面直接为大家展现实例。 1.先添加一个按钮用于选择保存路径 1 private void button3_Click(object sender, ...

weixin_30470857的博客 227

YOLOv8 轴承缺陷检测 使用YOLOv8进行训练、评估和可视化预测结果 包含1440张图片的轴承缺陷检测数据集 YOLO格式或XML格式

本文介绍了一个基于YOLOv8的轴承缺陷检测项目。数据集包含1440张图片,标注了4类缺陷(凹槽、凹陷、卡伤、划痕),按8:1:1比例划分为训练集(1152张)、验证集(144张)和测试集(144张)。标注文件支持YOLO格式和XML格式,可直接用于模型训练。项目实现了数据准备、模型训练、评估及可视化预测结果的全流程,使用YOLOv8n预训练模型进行50个epoch的训练,并提供了数据格式转换(XML转YOLO)的代码示例。最终模型可自动检测轴承表面缺陷,并保存预测结果。

OICQQ67658008的博客 1444

将DataGrid输出到Excel文件

在Web From上输出数据到Excel有两种方法,一个是有数据库直接导出;另外一个方法是由DataGrid直接输出到Excel文件。下面得代码实现了这两个功能。注意:在使用时要引用Microsoft Office Web Components 9.0 COM组件,另外注意设置要保存文件得目录具有匿名可修改的权限。 DataGridToExcel.aspx ...

117

同济土木非0基础三个月跨考复旦计算机攻略

跨考cs攻略前言我cs专业课如何复习How to start from zero简历其他复试 前言 建议多去工地/化工厂涡轮增压一下 我 同济土木gpa 3.2/5 挂科 * n 辣鸡项目 * n (padding 简历) 21考复旦计算机专硕 10月-12月 学习+复习 总分392 政治 68;背肖4即可 英语二 78 裸考,(高考英语140+);做点真题,建议据自己情况准备 数学二 142 ;(高考数学接近满分);做真题+模拟题,每天写一张试卷 专业课 104 ,考试生病了,下文展开。 cs专业课

piglake的博客 7238

2.1 量子精密测量:SERF原子陀螺仪中的核自旋-电子自旋强耦合机制

本文深入解析了SERF原子陀螺仪中核自旋-电子自旋强耦合机制的核心原理与应用。通过量子精密测量技术,SERF陀螺仪实现了超高精度的惯性导航,其独特的磁场自补偿和拉莫尔进动特性使其在弱磁场环境下表现出色。文章还探讨了关键技术突破和前沿进展,展示了量子精密测量在惯性导航领域的巨大潜力。

kotlin6android的博客 212

WPF DataGrid 数据绑定

上一篇写了懒人方法直接绑定数据,这次加一个模板 AutoGenerateColumns="False"  如果属性为false 那么Datagrid则不能自动生成列,那么你需要自己定义列。                                                                                              

qq_37246121的博客 1186

数据分析案例-基于红米和华为手机的用户评论分析

在智能手机市场日益繁荣的今天,红米与华为手机作为国产手机品牌的佼佼者,凭借其各自独特的品牌魅力和技术实力,赢得了广泛的用户群体和高度关注。随着技术的不断进步和消费者需求的日益多样化,用户对手机的期望已不仅限于基本的通讯功能,更涵盖了性能、拍照、续航、用户体验等多个方面。因此,深入探究红米与华为手机在用户长期使用过程中的实际表现,尤其是用户评论中所反映出的真实反馈,对于理解市场需求、优化产品设计及提升用户体验具有重要意义。本实验的背景正是基于这样的市场环境和技术发展趋势。我们旨在通过收集并分析红米与华为手机的

m0_64336780的博客 1万+

將datagrid控件內容輸出到excel文件

一個將datagrid控件內容輸出到excel文件的demo.生成EXCEL文件#region 生成EXCEL文件public void setToExcel(){//            Response.Clear(); //            Response.Buffer= true; //            Response.Charset="utf-8";        

johncools的博客 980

IDCNBSAIS-财务报表功能范围取值管理费用、销售费用、研发费用排除指定科目的实现

研究了很多方法,没有办法实现,只在营业费用增加一个冲抵项解决,也咨询了外部顾问说要建立自建表。限于需要马上修正后面只能用了最最low的办法处理了一下。公司遇到的一个问题,目前报表有些项目是按照功能范围取值的,发现取多了。IDCNBSAIS-财务报表功能范围取值管理费用、销售费用、研发费用排除指定科目的实现。最后结果是正确的,但是总觉得有更好的办法,不知道有没有高人可以指点一下?建立一个调整项的目录,在每个节点做了调整。除了研发费用做了冲抵在以下每个节点都做了冲抵。为财务报表定义表格结构。

nopicture的博客 1493

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

把Excel文件中的数据读入到DataGrid中

使用Excel文件做为DataGrid的数据源是非常简单的,一旦数据被装载进来,就可以把数据再保存进SQL Server或XML中。我们只需要简单地使用OLE DB Provider 来访问Excel文件,然后返回DataSet即可。下面是要显示的Excel数据contact.xls:姓名性别地址net_loverMaleamxh@21cn.comamxhMaleamxh@21cn.com孟子 E

咖啡茶 999

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

选择部分记录输出到Excel

ToExcel.aspxasp:datagrid id="DataGrid1" runat="server" Width="595px" AutoGenerateColumns="False" PageSize="30"                                AllowPaging="True" BorderWidth="1px" BorderColor="SeaG

lxs5i5j的专栏 1525

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

让WPF中的DataGrid像Excel一样可以筛选

在默认情况下,WPF提供的DataGrid仅拥有数据展示等简单功能,如果要实现像Excel一样复杂的筛选过滤功能,则相对比较麻烦。本文以一个简单的小例子,简述如何通过WPF实话DataGrid的筛选功能,仅供学习分享使用,如有不足之处,还请指正。

绳锯木断,水滴石穿,专心写文,无问西东!!! 4991

DataGrid

<br />2010年7月19日星期一<br />议程<br />列表控件概述<br />列表控件是如何工作的<br />DataGrid基本使用<br />DataGrid常用的使用技巧<br />DataGrid其他使用技巧<br /> <br />列表控件概述<br />能够取得数据集,并自动遍历它们<br />比其他控件要复杂得多<br />这些控件把绑定到它们的数据通过HTML教程表现出来<br />常用作其他实际显示数据的控件的容器<br />功能强大、较复杂<br />用于以下应用:报表、购物

每一天都有新的希望 1916

ASP.NET中将数据输出到Excel

近来,在开发ISO文件管理系统的时候,曾经遇到过要将ASPX直接输出到EXCEL的需求,现将经验所得与大家分享。其实,利用ASP.NET输出指定内容的WORD、EXCEL、TXT、HTM等类型的文档很容易的。主要分为三步来完成。一、定义文档类型、字符编码Response.Clear();Response.Buffer=true;Response.Charset="utf-8";//

sinodier的专栏 299
下一篇: MVC2 与 JQuery 的 Ajax 实现局部刷新的问题
猪肚腩
博客等级 码龄18年 4粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值