Silverlight 中将DataGrid中所有分页导出到Excel

MySQL注入提权实战:从SQL注入到系统权限提升的完整攻击链解析 SQL注入是一种常见的Web安全漏洞,其原理是攻击者通过构造恶意SQL语句,绕过应用程序的输入验证,直接操作后端数据库。这种技术之所以具有破坏性,是因为它可能绕过认证、窃取敏感数据,甚至通过数据库的特定功能(如文件读写、自定义函数)进一步执行系统命令,实现权限提升。在数据库安全领域,理解注入与提权的完整链条对于构建有效的防御体系至关重要。本文聚焦MySQL数据库环境,深入剖析如何利用FILE权限、UDF(用户自定义函数)等机制,将数据库层面的漏洞转化为操作系统级别的控制。通过实战案例,详细讲解从注入点探测、 阅读详情

做一个基于Silverlight的应用,主要是报表数据生成展示,还需要将报表数据导出,在网上找了一些资料,发现不能用,于是进行了改进,并加入了读取所有分页数据的功能。

以下为基础代码:

 

        /// <summary>
        /// CSV字符串转换
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private string FormatCSVField(string data)
        {
            return String.Format("{0}\t", data.Replace("\"", "\t\n"));

        }
        /// <summary>
        /// 导出到Excel
        /// </summary>
        /// <param name="dataPagerTemp">分页控件</param>
        /// <param name="dataGridTemp">数据表格控件</param>
        /// <returns></returns>
        private string ExportExcel(DataPager dataPagerTemp, DataGrid dataGridTemp)
        {
            string colPath;
            System.Reflection.PropertyInfo propInfo;
            System.Windows.Data.Binding binding;
            System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();
            //加载Excel表头数据
            List<string> headers = new List<string>();
            for (int i = 0; i < dataGridTemp.Columns.Count; ++i)
            {
                string strTemp = dataGridTemp.Columns[i].Header.ToString();
                headers.Add(FormatCSVField(strTemp));

            }
            strBuilder
            .Append(String.Join("", headers.ToArray()))
            .Append("\t\n");

            //内容
            for (int i = 0; i < dataPagerTemp.PageCount; i++)
            {
                dataPagerTemp.PageIndex = i;

                foreach (Object m_Temp in dataGridTemp.ItemsSource)
                {
                    List<string> csvRow = new List<string>();

                    foreach (DataGridColumn col in dataGridTemp.Columns)
                    {
                        if (col is DataGridBoundColumn)
                        {
                            binding = (col as DataGridBoundColumn).Binding;
                            colPath = binding.Path.Path;
                            string[] pathlist = colPath.Split('.');

                            object currentData = m_Temp;
                            int count = 0;
                            foreach (string item in pathlist)
                            {
                                propInfo = currentData.GetType().GetProperty(item);
                                if (propInfo == null) break;
                                count++;
                                if (count == pathlist.Length)
                                {
                                    csvRow.Add(FormatCSVField(propInfo.GetValue(currentData, null).ToString()));
                                    break;
                                }
                                else
                                {
                                    currentData = propInfo.GetValue(currentData, null);
                                }

                            }

                        }
                    }
                    strBuilder
                    .Append(String.Join("", csvRow.ToArray()))
                    .Append("\t\n");
                }
            }
            dataPagerTemp.PageIndex = 0;
            return strBuilder.ToString();
        }

        /// <summary>
        /// 保存为Excel
        /// </summary>
        /// <param name="dataPagerTemp">分页控件</param>
        /// <param name="dataGridTemp">数据表格控件</param>
        private void SaveAsExcel(DataPager dataPagerTemp, DataGrid dataGridTemp)
        {
            string data = ExportExcel(dataPagerTemp, dataGridTemp);

            SaveFileDialog sfd = new SaveFileDialog()
            {
                DefaultExt = "xls",
                Filter = "Microsoft Office Excel(*.xls)|*.xls",
                FilterIndex = 1
            };
            if (sfd.ShowDialog() == true)
            {
                using (Stream stream = sfd.OpenFile())
                {
                    using (StreamWriter writer = new StreamWriter(stream, System.Text.UnicodeEncoding.Unicode))
                    {
                        data = data.Replace(",", "/t");
                        writer.Write(data);
                        writer.Close();
                    }
                    stream.Close();
                }
            }
        }


调用:

 

        /// <summary>
        /// 导出报表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonExport_Click(object sender, RoutedEventArgs e)
        {
            SaveAsExcel(dataPagerReport, dataGridReport);
        }


silverlight实现datagrid全选、反选、分页、导出EXCEL 通过整合网络资源完成的一个简单的silverlight项目实例(菜鸟一枚,与大家分享) 立即下载

相关推荐

silverlight 将DataGrid数据导出EXCEL

silverlight 将DataGrid数据导出EXCEL

Silverlight Datagrid 导出 Excel

Silverlight Datagrid 导出 Excel 注意:以下代码未经本人测试,仅供参考转自http://www.cnblogs.com/ijkjuxit/articles/2093076.htmlvoidbtnExport_Click(objectsender,RoutedEventArgse){...

weixin_30888413的博客 121

将silverlight中datagrid的数据导出为Excel表格

将silverlight中datagrid的数据导出为Excel表格.txt

silverlight开发:将datagrid中的数据导出为Excel和CSV文件

silverlight开发:将datagrid中的数据导出为Excel和CSV文件

spring的专栏 3997

anaconda安装-超详细版

文章目录一、anaconda安装1.1 anaconda安装地址1.2 安装详细步骤检验安装是否成功更改conda源(后续安装第三方库可以加快速度) 一、anaconda安装 Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。装anaconda,就不需要单独装python了。 anaconda优点: 1、anaconda里面集成了很多关于python科学计算的第三方库,主要是安装方便,而p

in546的博客 25万+

C语言 100道经典编程题适用于专升本,专接本【详细分析版】_c语言专升本题目

/法2//left指向起始 right指向数组末尾= 0){left++;//如果*left是奇数就循环接着向后指,直到指向偶数就退出//(left

2401_84978503的博客 695

导出 Silverlight DataGrid to Excel XML/CSV

参考自http://www.codeproject.com/Articles/45731/Export-Silverlight-DataGrid-to-Excel-XML-CSV和http://www.cnblogs.com/itelite/archive/2012/11/28/2792545.html 源码如下: using System; using System.Col...

a6265655的专栏 177

快手极速版抓包实战:安卓/iOS双端获取client_salt全流程解析(避坑指南)

本文详细解析了在安卓和iOS平台上获取快手极速版关键参数`client_salt`的全流程,包括环境配置、抓包工具使用、参数识别与转换等实战技巧。特别针对双端差异和反抓包机制提供了避坑指南,帮助开发者高效安全地完成数据获取任务。

weixin_29021195的博客 714

Export data to Excel from Silverlight/WPF DataGrid

Data export from DataGrid to Excel is very common task, and it can be solved with different ways, and chosen way depend on kind of app which

hgjsoft空间 1370

Sentinel--哨兵系列数据下载地址及流程更新【202310】

哨兵系列数据下载地址及流程更新。哨兵系列卫星作为哥白尼计划的一部分,主要目标便是对地球的观测任务。哥白尼计划由三部分组成:空间部分(哨兵系列太空任务与其他太空机构任务)、测量部分(提供海洋、大陆表面和大气信息的陆基和机载数据收集网络)、数据管理与全球共享。

twg666的博客 3万+

STM32H5 USB虚拟串口:用Classic驱动移植CDC实践

USB虚拟串口(CDC)是嵌入式系统最常用的主机通信方式之一,本质是借助USB协议模拟串口收发,无需额外驱动即可在PC上生成COM口。其实现依赖USB设备协议栈完成枚举、控制传输与批量传输。传统USBD Classic库不依赖RTOS,代码轻量、调用链短,非常适合裸机或轻量状态机架构;而USBX功能强大但需要ThreadX内核,资源开销较大。在电机控制器、传感器采集等场景中,日志输出与参数配置仅需简单的双向数据通道,Classic驱动往往更务实。本文基于STM32H5平台,详细梳理了使用Classic驱动移

weixin_29178069的博客 334

Silverlight 4中把DataGrid数据导出Excel

Silverlight中常常用到DataGrid来展示密集数据. 而常见应用系统中我们需要把这些数据导入导出到固定Office套件中例如常用的Excel表格. 那么在Silverlight 中如何加以实现? 在参考大量资料后 提供参考思路如下: A:纯客户端导出处理.利用Silverlight 与Javascript 进行交互实现导出Excel. B:服务器端导出.获得DataG

陌上花开 1063

mjlab & MimicKit 宇树 G1 人形机器人强化学习训练部署

基于mjlab框架训练Unitree G1人形机器人执行双旋踢的示例。参考动作源自Jason Peng的MimicKit项目。数据转换脚本(MimicKit pkl → mjlab csv)完整训练结果与超参数预训练ONNX检查点用于部署实体硬件部署指南⚠️ 免责声明仅用于教育目的。对于因尝试复现此处展示结果而导致的财产损失或人身伤害,我们概不负责。操作硬件时请谨慎行事并保持良好判断力。

2506_90492529的博客 1700

Silverlight DataGrid导出Excel(原生表头与复杂表头)

public static string GridDataToExcel(DataGrid _dg, string WorksheetName, string WorkTitle, string strRow)         {          // 这是原生表头的写法,如果是复杂表头 可以在Excel中编辑好表头 然后保存为xml格式  放入网页中 就可看到复杂表头的代码  然后...

天天写代码⎝⏠⏝⏠⎠ 1943

项目实战第四十七讲:易宝支付对接详解(保姆级教程)

本文是项目实战第四十七讲,易宝支付对接详解。1、xxl_job 接入fix;2、支付接口,将thirdOrderNo赋初始值,并将数据库中third_Order_No设置为非空;3、性能提效:将深拷贝改为字符赋值,提升程序性能;先不改动。

Jet_qi的博客 2680

vue3 - element-plus表格组件el-table实现鼠标拖曳排序功能,vue3 Table表格拖拽排序,表格每行使用鼠标拖动进行排序功能,表格拖拽排序实现(详细示例代码,一键复制开箱即用

vue3,elementPlus,el-table,typescript,表格组件,Table表格,表格拖动排序,表格拖曳排序,鼠标拖拽表格进行排序功能,elementplus表格如何实现拖动每行进行排序操作,表格拖动改变顺序,鼠标拖曳,表格内的数据项拖拽排序,vue3如何实现element-Plus表格组件进行表格内的数据项拖拽排序,列表拖拽排序效果,实现table动态拖拽,鼠标拖着排序,vue3 element Plus 表格拖曳拖动拖拽 排序,el-table拖拽排序实现,表格内容拖拽重新排序,树形表

✅ 精选推荐文章 1万+

[SilverLight] DataGrid实现批量输入(like Excel)

DataGrid 控件提供了一种灵活的方式来以行和列的形式显示数据集合。但却没有提供增加、删除行、即时输入等功能,若要实现类似于Winform下的DataGrid批量录入功能,还得做一些手脚: 1. 显示行号; 2. 即时输入; 3. 增加新行; 4. 删除行; 5. 复制、粘贴行/多行。 本文针对这几个问题,提出一些解决思路。 1. 显示行号 ...

weixin_34391854的博客 1096

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Silverlight的DataGrid中:导出到Excel或CSV 3

using System; using System.Windows; using System.Windows.Data; using System.Windows.Media; using System.Windows.Controls; using System.

Crazying Man 2049

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

silverlight datagrid/grid导出到excel 方法

由于权限问题,此方法智能在OOB模式时使用

azjcdy的专栏 524

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Silverlight 4中把DataGrid数据导出Excel—附源码下载

Silverlight中常常用到DataGrid来展示密集数据. 而常见应用系统中我们需要把这些数据导入导出到固定Office套件中例如常用的Excel表格. 那么在Silverlight 中如何加以实现? 在参考大量资料后 提供参考思路如下: A:纯客户端导出处理.利用Silverlight 与Javascript 进行交互实现导出Excel. B...

weixin_33991418的博客 180

silverlight中datagrid数据到处excel

首先新建一个DataGrdiExtensions类,代码为: public static class DataGridExtensions { /// /// 导出dg中数据,成功返回true,失败返回false /// /// /// public static bool Expo

longshengguoji的专栏 1279

Silverlight 4中把DataGrid数据导出Excel—附×××

Silverlight中常常用到DataGrid来展示密集数据. 而常见应用系统中我们需要把这些数据导入导出到固定Office套件中例如常用的Excel表格. 那么在Silverlight 中如何加以实现? 在参考大量资料后 提供参考思路如下: A:纯客户端导出处理.利用Silverlight 与Javascript 进行交互实现导出Excel. B:服务器端导出.获得...

weixin_34405354的博客 125
上一篇: Silverlight与html网页、javascript交互
下一篇: C#保存EMF矢量图形文件
lujunql
博客等级 码龄19年 156粉丝 124原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lujunql

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值