asp mvc 导出txt 文件泛型方法

ASP.netMVC 导出数据 以重庆邮电项目为例,实现导出当前页面所显示的表格数据,必须要获取当前页面所有数据,如何查询到数据就如何获取当前页面显示的数据。 Js部分,首先获取当前表格数据的筛选条件,比如: 我们会发现获取的字段正是查询时的下拉框和学号/姓名模糊查询的内容,如果AcademeID == “” || AcademeID == undefined,则说明学院下拉框显示值为“—请选择----”,那么年级和班级也没有... 阅读详情
public static void ExportFile<T>(T obj)

        {

 

            StringBuilder str = new StringBuilder();

 

            //列出obj 对象中的所有属性

            System.Reflection.PropertyInfo[] properties = obj.GetType().GetProperties();

 

            if (properties != null && properties.Length > 0)

            {

                // 局部变量 用来判断循环次数,输出换行和逗号

                int j = 0;

 

                foreach (var item in properties)

                {

                    // 获取属性值

                    object objvalue = item.GetValue(obj, null);

                    //是否是泛型类型

                    if (item.PropertyType.IsGenericType)

                    {

 

                        Type objType = objvalue.GetType();

                        // 获取泛型集合总数

                        int count = Convert.ToInt32(objType.GetProperty("Count").GetValue(objvalue, null));

                        // 遍历集合

                        for (int i = 0; i < count; i++)

                        {

 

                            object listitem = objType.GetProperty("Item").GetValue(objvalue, new object[] { i });

 

                            System.Reflection.PropertyInfo[] myPros = listitem.GetType().GetProperties();

                            // 局部变量 用来判断循环次数,输出换行和逗号

                            int k = 0;

                            // 遍历集合中的属性

                            foreach (var m in myPros)

                            {

                                 // 属性名

                                //str.Append(m.Name);

                                //str.Append(",");

                                //str.Append("\t");

                                if (m.GetValue(listitem, null) != null)

                                {

                                    // 属性值

                                    str.Append(m.GetValue(listitem, null));

                                }

                                else

                                {

                                    str.Append("空值");

                                }

                                // 换行

                                if ((k+1) % 2 == 0)

                                {

                                    str.Append("\n");

                                }

                                // 输出 逗号

                                else if (k % 2 == 0)

                                {

                                    str.Append(",");

                                }

                                k++;

                            }

                            }

                    }

 

                     // 非泛型类型

                    else

                    {

                        // 属性名

                        //str.Append(item.Name);

                        //str.Append(",");

                        //str.Append("\t");

 

                        //判断属性值

                        if (item.GetValue(obj, null) != null)

                        {

                            // 属性值

                            str.Append(item.GetValue(obj, null));

                        }

                        else

                        {

                            str.Append("空值");

                        }

                        // 换行

                        if ((j+1) % 2 == 0)

                        {

                            str.Append("\n");

                        }

                        // 输出逗号

                        else if (j % 2 == 0)

                        {

                            str.Append(",");

                        }

                        j++;

                    }

                }

            }

 

            HttpContext.Current.Response.Clear();

            // 启用缓存

            HttpContext.Current.Response.Buffer = true;

            //中文编码

            HttpContext.Current.Response.Charset = "GB2312";   //  或者 "utf-8"

            // 设置编码方式

            HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;

 

            //文件名称

            string filename = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".txt";

 

            /// 设置http 请求头,直接指向文件

            HttpContext.Current.Response.AddHeader("Content-Disposition",

                "attachment;filename=" + HttpContext.Current.Server.UrlEncode(filename));

 

            //指定返回的是一个不能被客户端读取的流,必须被下载     

            HttpContext.Current.Response.ContentType = "text/plain"; // 或者 application/ms-txt

 

            //把文件流发送到客户端

            HttpContext.Current.Response.Write(str.ToString());

            // 停止页面的执行

            HttpContext.Current.Response.End();

        }
 
  因时间仓促,代码 也有不足之处,如果您有什么好的想法,欢迎提出并与我交流

ASP.NET MVC解决方案结构设计:从分层陷阱到业务垂直切片 ASP.NET MVC解决方案结构是影响团队协作效率与系统长期可维护性的核心架构要素。其本质并非技术分层的教科书式罗列,而是围绕真实业务能力组织代码的工程实践。理解MVC请求生命周期与领域稳定性的错配关系,能避免抽象泄漏和测试地狱;掌握垂直切片(Vertical Slice)设计原理,可显著提升编译速度、降低新人上手成本并支持模块化发布;结合SharedKernel精细化管控与可验证的健康度检查清单,团队得以将解决方案结构从隐形枷锁转化为持续交付加速器。本文聚焦Asp.Net MVC项目在3人以上协作、年复 阅读详情

相关推荐

ASP.NET MVC 1.0 ViewEngine 原理与自定义实战

ViewEngine 是 ASP.NET MVC 框架中负责视图定位、编译、执行与释放的核心引擎,它定义了视图生命周期的标准化契约。其设计基于接口(IViewEngine/IView)和可插拔管道机制,使开发者能精准控制模板查找路径、动态编译逻辑及渲染输出行为。技术价值在于解耦视图实现与框架调度,支撑多格式模板(如 .txt/.aspx)、多语言本地化、性能缓存与资源安全释放等工程需求。典型应用场景包括邮件模板渲染、国际化视图切换、静态资源预编译优化等。本文深入解析 MVC 1.0 中 ViewEngine

aobai7842的博客 404

asp.net导出txt文件

//通过repeater保存为txt文件 protected void btn3_Click(object sender, EventArgs e) { string sel = "select EX_Parent ,EX_PostCode ,EX_Address from EnterInfo where EX_Mark like '%" + txtMark3.Tex

MrWang 6551

ASP.NET企业级系统源码解析:从运行到二次开发实战指南

企业级应用开发的核心在于理解业务逻辑与数据架构的映射关系,其原理通常通过分层架构(如数据访问层、业务逻辑层、表示层)实现数据流转与规则封装。这种架构模式的技术价值在于分离关注点,提升代码可维护性与团队协作效率,广泛应用于客户关系管理、合同生命周期管理等业务系统。本文以一套典型的ASP.NET客户及合同管理系统源码为例,深入剖析其数据库配置、三层架构协作机制及安全加固策略,为开发者提供从环境搭建到功能模块二次开发的完整路径,其中涉及SQL注入防御与ViewState优化等关键实践。

weixin_33907511的博客 473

asp.net mvc 导出文件格式大全

例子:常规导出Excel: return File(ms, "application/vnd.ms-excel", "施工日志" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls"); 更多格式: mimetypes = array( 'doc' => 'application/msword', 'bi...

李赛赛的专栏 1238

Asp.Net导出Excel和TxT文档

Asp.Net导出Excel和TxT文档

C# Txt文件导入导出

C# Txt文件导入导出 XmlHelper help_Xml = new XmlHelper(文件地址); 再调用方法就行了

asp.net导出.TXT文件

asp.net导出.txt文件实例

lm18307210047的博客 1376

springmvc+poi 导入导出文件controller以及工具类

Springmvc+poi 实现导入导出excel的controller方法和工具类

DataGrid内容的导出

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33748818的博客 235

spring MVC 导出excel

NULL 博文链接:https://dengli19881102.iteye.com/blog/1006011

手把手教你用Cadence仿真12bit SAR ADC:从电路图到FFT频谱分析(含Simc 18mmrf工艺文件)

本文详细介绍了使用Cadence仿真12bit SAR ADC的全流程,包括电路搭建、仿真环境配置、瞬态仿真优化及FFT频谱分析。基于Simc 18mmrf工艺文件,提供从电路图到性能验证的实战指南,特别分享工程实践中的排错技巧和优化策略,帮助工程师高效完成ADC设计验证。

weixin_30832405的博客 405

ASP.NET MVC分离架构下脚手架恢复方案

ASP.NET MVC脚手架是提升开发效率的核心工具,其本质是基于项目结构与ViewEngine路径约定的代码生成机制。在标准单项目中,Visual Studio通过ProjectContext自动定位Views目录并驱动T4模板生成控制器与视图;但当采用Controllers/Views物理分离架构时,原有上下文失效,导致右键菜单灰显、路径映射错误、跨版本兼容困难。本方案聚焦MVC 2.0与MVC 3.0双运行时环境,通过VSIX扩展劫持设计时上下文、动态切换ProjectContext、重定向Virtu

clugcpne10995的博客 321

关于42步进电机驱动——基于STM32 HAL库实现

我找了好多资料,好多关于42步进电机的都是文档,这么文档都需要积分,需要积分就算了内容还非常差,浪费时间和电脑的内存。关于大部分是基于Arduino和51去驱动的 42步进电机驱动硬件如下: 首先你要了解步进电机的驱动原理,我也不啰嗦了,请看这边博客: 二相四线,四相五线,四相六线步进电机接线及驱动方法 , 看完这篇你就知道驱动和接线的原理了。 起初我也为如何接线烦恼,因为有些博客在讲述这些问题的时候没有讲的很透彻。 方法如下: ①用万用表调到欧姆档,用其中一个表笔搭在一个引脚上,依次测其它.

Jodan132的博客 1万+

Telerik UI for ASP.NET MVC,响应迅速且可自定义组件

Telerik UI for ASP.NET MVC,响应迅速且可自定义组件   Telerik UI for ASP.NET MVC 在最快的时间内提供高质量的应用程序。它包括超过 110 个功能丰富、响应迅速且可自定义的 ASP.NET MVC UI 组件,适用于任何场景。使用功能齐全的 UI 组件(例如 MVC Grid、Editor、Scheduler 等)开发数据驱动的 Web 应用程序。简单但功能强大的数据绑定和 CRUD 操作具有多种选项 - EF Core、OData、Web API 和

q2315702359的博客 552

PT32F030与MT6826S SPI通讯实战:从硬件连接到数据交互全流程解析

本文详细解析了PT32F030与MT6826S通过SPI通讯的全流程,包括硬件连接、电路设计、SPI外设初始化配置以及数据交互协议实现。通过实战案例和代码示例,帮助开发者快速掌握PT32F030与MT6826S的SPI通讯技术,实现精准的角度和速度数据采集。

weixin_29189373的博客 420

C语言实战:高效端口扫描器的多线程优化与性能对比

本文详细介绍了使用C语言开发高效端口扫描器的多线程优化技术,包括TCP全连接扫描、SYN半连接扫描和FIN扫描的实现原理。通过线程池、I/O复用技术和性能优化策略,显著提升扫描效率,并与Nmap进行性能对比。文章还涵盖了常见问题解决方案及安全伦理注意事项,为开发者提供全面的实战指导。

ol789012的博客 134

界面控件DevExpress ASP.NET Spreadsheet组件 - 轻松集成电子表格功能!(一)

本文主要为大家介绍界面控件DevExpress ASP.NET Web Forms的Spreadsheet组件,欢迎下载最新版体验~

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 920

LinuxCNC---在PC端显示开发板LinuxCNC界面

  今天在调试开发板时,执行开发板上的linuxcnc指令,总是出现如下报错 LINUXCNC - 2.9.0~pre0 application-specific initialization failed: couldn't connect to display "192.168.137.3:1" Error in startup script: invalid command name "image" while executing "image create photo -file $f/$i

中华田园巨龙 3470

2024届数字IC秋招-华为机试-数字芯片-笔试真题和答案(三)(含2022年和2023年)

此部分包含华为机试真题,方向是数字芯片,内容详细包括设计、验证、后端等,大部分题目给出参考答案。华为机试都是从题库里抽题目,所以这些题目还是很有参考性的,甚至是完全一样,可以搜到的。(题目内容较多,将分开编写几个文章)A.错误B.正确参考答案:BA.getB.try_getC.peekD.put参考答案:B。

qq_42135020的博客 1917

万字数据仓库面试题及参考答案

星型模型由一个中心的事实表和多个外围的维度表组成,事实表存储度量值和事实,维度表存储描述性属性和维度。星型模型和雪花模型的区别在于雪花模型将维度表进一步细化,形成多层次的结构,而星型模型由一个中心事实表和多个维度表组成,适用于查询较为简单的情况。维度建模通常采用星型模型或雪花模型,将数据分为事实表和维度表,其中事实表存储度量值和事实,维度表存储描述事实的属性。三者之间的关系可以这样理解:数据仓库主要关注历史数据的存储和分析,数据中台则关注数据的服务化和资产化,而数据湖则关注原始数据的存储和多样性。

大模型大数据攻城狮的专栏 560

基于C#语言MDB,XLS,DBF,VFPDBF,DOC,TXT,XML,HTML导入(导出)数据公用方法

//Excel导入到数据库 public ActionResult impdr() { HttpPostedFileBase filepost= Request.Files["info"]; string flag = "", msg = ""; if (filepost==null||filepost.Co...

u012949335的专栏 556

上位机图像处理和嵌入式模块部署(开篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 图像处理是现实生活当中很实用的一门技术。工业上一般采用的是机器视觉,以传统算法和光源控制为主,部分采用了深度学习技术。而生活当中,则主要以二维码识别、人脸识别、车牌识别和ocr识别为主,这中间深度学习与AI扮演了很重要的角色。过去,市场上的商业收费软件,主要还是以传统设备厂商提供的上位机软件为主,那这一部分是不是结合最新的npu技术,应该做出一些新的东西出来呢?

嵌入式-老费,一个分享专业嵌入式知识的blog 1337

ASP.NET MVC 4遗留系统实战生存指南:四维路线图与七步突围法

ASP.NET MVC 是微软早期基于 .NET Framework 的 Web 开发框架,其核心设计遵循前端控制器模式与关注点分离原则,技术价值在于为传统 Web Forms 提供更可控、可测试的架构范式。尽管官方已终止支持,但大量政务、金融、医保等关键业务系统仍在生产环境深度依赖 MVC 4,面临安全漏洞(如 CVE-2013-3900)、IE 兼容性、运行时环境约束(IIS 7.5/Windows Server 2008 R2)及 NuGet 依赖冲突等现实挑战。本文聚焦真实遗留系统演进场景,围绕框架

452

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: Mvc 中部分视图的使用
下一篇: 在mvc中动态加载菜单
SpringFiled
博客等级 码龄15年 9粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值