首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将DataGrid表导出到MS Excel时,数据显示为System.Data.DataRowView

是因为在导出过程中没有正确处理数据的格式。System.Data.DataRowView是数据绑定时的默认显示格式,而不是实际的数据值。

要解决这个问题,可以使用以下步骤:

  1. 获取DataGrid中的数据源。可以通过DataGrid的ItemsSource属性来获取数据源。
  2. 遍历数据源,将实际的数据值提取出来。可以使用循环或LINQ查询来遍历数据源,并将每个单元格的值提取出来。
  3. 创建一个新的Excel文件,并将数据写入到Excel文件中。可以使用第三方库,如NPOI或EPPlus,来创建和操作Excel文件。根据提取到的数据,将数据写入到Excel文件的相应单元格中。
  4. 导出Excel文件。将生成的Excel文件保存到本地或提供下载链接,以便用户可以下载导出的Excel文件。

以下是一个示例代码,使用NPOI库将DataGrid表导出到MS Excel:

代码语言:txt
复制
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;

// 获取DataGrid中的数据源
var dataGridItemsSource = dataGrid.ItemsSource as IEnumerable;

// 创建一个新的Excel文件
var workbook = new HSSFWorkbook();
var sheet = workbook.CreateSheet("Sheet1");

// 写入表头
var headerRow = sheet.CreateRow(0);
for (int i = 0; i < dataGrid.Columns.Count; i++)
{
    var cell = headerRow.CreateCell(i);
    cell.SetCellValue(dataGrid.Columns[i].Header.ToString());
}

// 写入数据
int rowIndex = 1;
foreach (var item in dataGridItemsSource)
{
    var dataRow = sheet.CreateRow(rowIndex);
    for (int i = 0; i < dataGrid.Columns.Count; i++)
    {
        var cell = dataRow.CreateCell(i);
        var binding = dataGrid.Columns[i].ClipboardContentBinding as System.Windows.Data.Binding;
        var propertyPath = binding.Path.Path;
        var propertyInfo = item.GetType().GetProperty(propertyPath);
        var value = propertyInfo.GetValue(item);
        cell.SetCellValue(value?.ToString());
    }
    rowIndex++;
}

// 导出Excel文件
using (var fileStream = new FileStream("ExportedData.xls", FileMode.Create))
{
    workbook.Write(fileStream);
}

在这个示例中,我们使用NPOI库创建一个新的Excel文件,并将DataGrid中的数据写入到Excel文件中。最后,将生成的Excel文件保存为"ExportedData.xls"。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理导出的Excel文件。您可以通过以下链接了解更多关于腾讯云对象存储的信息:腾讯云对象存储(COS)产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java数据导出excel表格_数据数据出到文本文件

公司开发新系统,需要创建几百个数据,建的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张,如果手动去一个一个去匹配就很麻烦,所以我先把两张都导入数据库中...,建数据如下: 其中字段类型被存放到了另一个中,根据字段的code从另一去取字段类型: 然后通过java程序的方式,从数据库中取出数据自动生成建表语句,生成的语句效果是这样的:...代码如下:(主要是提供思路,对于不同的建规则不能完全适用,SQL语句oracle数据库SQL语句) import java.io.BufferedWriter; import java.io.File...datalist.get(i).getTablename().equals(datalist.get(i+1).getTablename())){ //当下一条数据开始新的 if(PKlist.size...datalist.get(i).getTablename().equals(datalist.get(i+1).getTablename())){ //当下一条数据开始新的 createtablesql.append

3.2K40

关于asp.net与winform导出excel的代码

,如果 改为ms-excel将将输出excel格式,也就是说以电子表格的格式输出到客户端,这时浏览器提示你下载保存。...2、DataGrid控件中的数据导出Execl 上述方法虽然实现了导出的功能,但同时把按钮、分页框等html中的所有输出信息了进去。而我们一般要导出的是数据DataGrid控件上的数据。...那么把DataSet中的数据导出,也就是把DataSet中的 中的各行信息,以ms-excel的格式Response到http流,这样就OK了。...public void OutputExcel(DataView dv,string str) {    //dv要输出到Excel数据,str标题名称    GC.Collect()...那我就改改显示格式吧,改为把数字显示文本,好了。可是国家的身份证升级了,号码变成18位,我把它输入到数据库,导出来时,用刚才的方法处理过,18位没错,可是最后三位怎么都是零了!

5.5K10
  • C#向excel中写入数据的三种方式

    第一种:DataGrid中的数据以流的形式写到excel中,格式以html的形式存在             Response.Clear();             Response.Buffer...";//设置输出文件类型excel文件。            ...//此类提供ASP.NET服务器控件在HTML内容呈现给客户端所使用的格式化功能             //获取control的HTML             dg.RenderControl(...());             Response.Flush();             Response.End(); 第二种:数据源中的数据以文件流的形式写到excel中,格式以txt的形式存在...excel中,格式以xls形式存在,好处导出的                数据可以直接导入,可以数字格式自动转化为文本格式,可以减少                格式转化的繁琐环节,还可以预留数字转换为文本的格式的行数

    3.8K40

    day60_BOS项目_12

    jQuery EasyUI 的 datagrid 数据网格控件 的使用方式 1、静态HTML代码渲染成datagrid样式 2、由datagrid发送ajax请求获取服务端json数据,构造datagrid... rowData);  // 显示整个表格的数据     } 1.4、项目第四天 实现区域批量导入功能 1、jQuery OCUpload(一键上传插件) 2、apache POI 解析Excel文件内容...的combobox下拉框 使用(2种方式) 解决区域分页查询的bug 实现分区分页查询(没有过滤条件) 实现分区组合条件分页查询 分区数据导出功能 1、查询所有数据 2、使用POI创建一个Excel...datagrid的编辑功能的使用 onAfterEdit:function(rowIndex,rowData,changes) { // 数据网格的事件:当前行结束编辑状态触发 } 基于数据网格datagrid...编辑功能实现工作单快速录入功能 1.7、项目第七天 权限概述(认证、授权) 常见的权限控制的方式(URL、方法注解) 权限数据模型(权限、角色、用户、角色权限关系、用户角色关系) apache

    1.7K20

    Jmix 2.1 发布

    列排序的顺序由排序箭头旁边显示的数字表示: ▲数据网格排序 排序由 dataGrid 组件的 multiSort、multiSortOnShiftClickOnly 和 multiSortPriority...需要配置聚合列,请将 dataGrid 组件的 aggregatable 属性设置 true, aggregation 元素添加到列中并选择聚合类型。...聚合值显示在单独的行中: ▲数据网格聚合 下一个改进是能够声明式地渲染器分配给 dataGrid 列。...如果用户单击此图标,则会显示一个包含属性过滤器的弹窗: 如果设置了过滤条件,表头的图标高亮显示: 表头过滤器这个概念,对于使用包括 Excel 在内的许多流行产品的用户都很熟悉,所以这个功能非常容易被发现和使用...当用户滚动选项列表分页加载数据。如果用户在控件中输入一些文本,还可以按文本过滤选项。

    22910

    MindManager专业版2022思维图工具

    凭借一系列令人印象深刻的强大功能和用户友好的界面,用户可以想法和战略计划可视化地显示专业外观的思维图。...思维图可以包括几个主题和子主题,每个主题都用彩旗、超链接、注释、图像、标签、标记、表情符号甚至附件来突出显示。...MindManager2022主要特点:虚拟白板,直观地捕捉信息创建、组织和优先处理任务和信息创建需求、项目时间和假设所有链接、笔记和文档附加到思维图中适用于大多数流行的Microsoft Office...MindManager2022软件特性:Microsoft Office集成同Microsoft 软件无缝集成,快速将数据导入或导出到Microsoft Word、 Excel、OPML、图像、CSV电子表格...思维图共享可以您的思维图通过Email方式发送给朋友或同事,也可以发布HTML并上传到Internet或Web站点上。可编辑的提纲视图以提纲形式浏览和编辑map图形。

    3.2K20

    使用Python实现将多表分批次从数据库导出到Excel

    一、应用场景 为了避免反复的手手工从后台数据库导出某些数据Excel文件、高效率到多份离线数据。 二、功能事项 支持一次性导出多个数据、自动获取各表的字段名。 支持控制批次的写入速率。.../usr/bin/env python # coding: utf-8 # 主要功能:分批次导出大数据量、结构相同的数据excel # 导出多个数据到各自的文件, # 目前问题:to_excel...) # 注: 这里一定要saver()数据从缓存写入磁盘!!!!!!!!!!!!!!!!!!!!!...path='D:\\myPC\\Python\\',# 导出到指定路径 startRow=1,#设定写入文件的首行,第2行数据首行 isHeader=False,# 是否包含源数据的标题 batch=...5 ) # 导出多个文件 ms.exportToExcel(**args) 以上这篇使用Python实现将多表分批次从数据库导出到Excel就是小编分享给大家的全部内容了,希望能给大家一个参考。

    2.4K40

    动态生成RDLC报表

    DataGrid里修改、增加、删除等数据变动,立即同步更新到报表 2、给一个简单的RDLC模板,提供表头的字体格式和内部数据等样式相关的信息,然后再用DataGrid里提取的数据,生成DataTable...这样提取数万条记录,界面不会卡,也不会占用很多内存,每次是要显示的时候才取几十条,一点点取。要用,才给,只给需要的那点。...问题,EnableRowVirtualization被设置true,只加载要显示数据 // 重新滚动,然后再重用这些DataGridRow...,然后再用DataGrid里提取的数据,填充到报表里 1 /// 2 /// DataGrid数据抽取出来,转换成rdlc报表,以实现对提供DataGrid...3 /// 加载报表模板,调用委托数据传到报表的显示控件上 4 /// 5 /// <param name="sender

    8.3K50

    【坑】如何心平气和地填坑之拿RSViewSE的报表说事

    当然也可以双击表格进行再次编辑 OK 嵌入的Excel基本也就这些应用了,展示一些数据呀,显示一些排班呀,他不能完全脚本化控制,如果要做报表之类的高级功能,就需要在脚本内创建对象或者插入其他的表格控件了...优点:简单方便,不需要数据库操作,可直接定时导出成CVS/Excel文件 缺点:查询不方便,只能一页页人工查找Excel文件 计划功能描述: 1、点击按钮,读取数据显示在表格内 2、自动实时读取数据显示在表格内...这个数字显示控件的属性面板设置VBA控制 在刚才拉的NumericDisplay1控件对象的Change事件里面调用表格写数事件 效果:如下图,表格里面的时间数字会按照系统时间变量的秒每秒变化一次...,举个栗子,当时间恰好等于23:59:59这个时刻,导出当天的报表内容。...注意: 此阶段所做的报表只能定时导出到指定位置作为文件保存。用户并不能在SE的画面内查询报表的历史数据。 如果需要查询历史数据功能,需要数据库的参与,下一阶段重点介绍。

    3.1K41
    领券