Wijmo 更优美的jQuery UI部件集:导出Wijmo的GridView到Excel

简介: Wijmo GridView 控件不提供导出Excel文件的方法。本篇博客介绍一种将Wijmo的GridView控件保存到Excel的简单方法。你可以使用同样的方法在C1 WebUI GridView上。

Wijmo GridView 控件不提供导出Excel文件的方法。本篇博客介绍一种将Wijmo的GridView控件保存到Excel的简单方法。你可以使用同样的方法在C1 WebUI GridView上。

 

步骤1 : C1GridView绑定至数据源

第一步是将C1GridView绑定到数据源。为了简单起见,我们将其绑定到C1Nwind.mdb的Customers表。

image

 

步骤2 : 导出C1GridView Excel

导出到Excel需要分成两步。第一步是将GridView保存至一个HTML字符串。

Web控件有一个RenderControl()方法可以将服务器端控件的内容输出到指定的HtmlTextWriter对象。如果启用了Tracing,该方法还将存储控件的Trace信息。然后该HtmlTextWriter对象输出到一个StringWriter 对象。

下面的方法被用来创建一个字符串:

Public Function DataGridToExcel(ByVal dgExport As C1.Web.Wijmo.Controls.C1GridView.C1GridView) As String

    '创建一个stringwriter

    Dim stringWrite As New System.IO.StringWriter()

    '创建一个使用该stringwriter的htmltextwriter

    Dim htmlWrite As New System.Web.UI.HtmlTextWriter(stringWrite)

    Dim dg As C1.Web.Wijmo.Controls.C1GridView.C1GridView

    'just set the input datagrid = to the new dg grid

    dg = dgExport

    '将header的字体加粗

    dg.HeaderStyle.Font.Bold = True

    '如果需要,这里是在组件级别改变颜色/格式

    dg.HeaderStyle.ForeColor = System.Drawing.Color.Black

    dg.RowStyle.ForeColor = System.Drawing.Color.Black

    '绑定修改后的datagrid

    '告诉datagrid将自己呈现到我们提供的htmltextwriter

    dg.AllowSorting = False

    dg.AllowPaging = False

    dg.AllowCustomPaging = False

    '新的代码

    Dim parent As Control = dg.Parent

    parent.Controls.Remove(dg)

    dg.RenderControl(htmlWrite)

    '新的代码

    parent.Controls.Add(dg)

    '输出HTML

    Return stringWrite.ToString()

End Function

 

 

image

 

下一步,我们将在一个Button Click事件中调用这个DownloadToExcel 方法从保存的字符串创建一个excel文件。

Public Sub DownloadToExcel(ByVal content As String, ByVal response As HttpResponse)

'清理 response.object

response.Clear()

response.Buffer = True

response.Charset = ""

'设置响应的MIME类型为excel

response.ContentType = "application/vnd.ms-excel"

response.ContentEncoding = New System.Text.UTF8Encoding()

response.Write(content)

response.End()

End Sub

 

 image

 

实现时的问题

在相当多的情况下,你会在导出时遇到一些错误。你可能会收到一条错误信息:“RegisterForEventValidation 只能在Render()过程中被调用;”。在这种情况下,请尝试以下方法:


1. 你可以向下面的文章描述的那样,重载VerifyRenderingInServerForm 方法:

http://connect.microsoft.com/VisualStudio/feedback/details/118285/rendercontrol-doesnt-work-for-gridview

Public Overrides Sub VerifyRenderingInServerForm(control As Control)

End Sub

 

2. 为了避免收到“RegisterForEventValidation 只能在Render()过程中被调用;”异常,可以关闭Page.EnableEventValidation 或者将RenderControl方法调用放置在一个try-catch块中。

此外,如果gridview包含一个复选框或者一个模板列,你会收到上面的错误。目前已发现微软发布的GridView会发生同样的错误。由于C1GridView继承自微软发布的GridView,所以它是C1GridView的已知设计问题。

 

下载示例 

 

Wijmo下载,请进入Studio for ASP.NET Wijmo 2012 v1正式发布(2012.03.22更新)!

相关文章
|
3月前
|
Python
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
8月前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
818 8
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
148 0
|
11月前
|
数据格式 UED
记录一次NPOI库导出Excel遇到的小问题解决方案
【11月更文挑战第16天】本文记录了使用 NPOI 库导出 Excel 过程中遇到的三个主要问题及其解决方案:单元格数据格式错误、日期格式不正确以及合并单元格边框缺失。通过自定义单元格样式、设置数据格式和手动添加边框,有效解决了这些问题,提升了导出文件的质量和用户体验。
805 3
|
11月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
202 1
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
11月前
|
Java API Apache
|
11月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
766 4
|
12月前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
700 6
|
10月前
|
JavaScript
超炫酷UI效果的jQuery滑块插件
超炫酷UI效果的jQuery滑块插件
87 0

热门文章

最新文章

相关课程

更多