【C#点滴记录】ASP.NET 使用C# 导出Word 和Excel
原文摘自 慧优米网,链接地址:http://huiyoumi.wang/upload/forum.php?mod=viewthread&tid=797&extra=
好了正文来了
今天有人问我,怎么把网页上的内容导出到word 或 excel中,很多公司或项目中都会用到该功能,大家解决方案有很多种
首先谈一下关于使用前端技术来完成,使用js去抓取网页中结构和内容,是最好的方式之一了,但在生成内容上却收到浏览器的限制,现大多数浏览器对ActiveXObject 这个插件都有限制,甚至在上传路径中都已经做了保护措施,地址也非明文。所以这种导出方法不太可选。
基于前端问题,大多数导出方案都放到了后台去完成,今天我们就使用C#完成导出功能,也借助了浏览器自带下载功能。
实现步骤
怎么创建ASP.NET应用程序这里就不用细讲了,
创建好窗口代码如下
<form id="form1" runat="server">
<div>
<table class="style1" id="table" border="1">
<tr>
<td>
你好,我是测试表格
</td>
<td>
还有欠缺请包含
</td>
</tr>
<tr>
<td>
dfgfsd
</td>
<td>
hello
</td>
</tr>
<tr>
<td>
不及跬步
</td>
<td>
无以至千里
</td>
</tr>
<tr>
<td> </td>
<td>
朋友希望能帮到你哦
</td>
</tr>
</table>
这是一段文本与表格无任何关系!!!!!!!<br /> <asp:Button ID="BtnWord" runat="server" Text="-=导出Word=-" OnClick="BtnWord_Click" />
</div>
</form>
注意的是,这里面代码直接拷贝到你的aspx页面中可能按钮会报错,大家重新拖一个进来然后再给一个事件即可
C#代码如下
/// <summary>
/// 导出到文件的方法,
/// </summary>
/// <param name="Model">Model=1:导出为Execl,Model=2:导出为Word</param>
private void toFiles(int Model)
{
string strFileName = DateTime.Now.ToString("yyyyMMdd-hhmmss");
System.Web.HttpContext HC = System.Web.HttpContext.Current;
HC.Response.Clear();
HC.Response.Buffer = true;
HC.Response.ContentEncoding = System.Text.Encoding.UTF8;//设置输出流为简体中文
if (Model == )
{
//---导出为Excel文件
HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".xls");
HC.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
}
else
{
//--- 导出为Word文件
HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".doc");
HC.Response.ContentType = "application/ms-word";//设置输出文件类型为Word文件。
}
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
this.RenderControl(htw);
HC.Response.Write(sw.ToString());
HC.Response.End(); }
此外还需要导入两个命名空间
using System.IO;
using System.Text;
在执行的过程中会在his.RenderControl(htw);这里报错。报一个缓冲错误,
这时只需要在aspx页面添加一个属性即可 属性如下
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OutWord.aspx.cs" Inherits="ImportWord.OutWord" EnableEventValidation="false" %>
最后就是需要调用一下C#方法即可,
在这里声明一下,本文摘抄地址也是我自己的论坛,所以内容都是经过自己亲测Demo 如果想要的话也私信我留邮箱我看到的话会发给你,
【C#点滴记录】ASP.NET 使用C# 导出Word 和Excel的更多相关文章
- 通过swagger json一键解析为html页面、导出word和excel的解析算法分享
写在前面: 完全通过Spring Boot工程 Java代码,将swagger json 一键解析为html页面.导出word和execel的解析算法,不需要任何网上那些类似于“SwaggerMark ...
- .Net导出Word和Excel
using System; using System.Collections.Generic; using System.Linq; using System.Web; public class Ex ...
- 在Java中导出word、excel格式文件时JSP页面头的设置
我们在JSP中往往会把一些表格里的东西需要导出到本地,一般都是导成word.excel格式的文件.这只需要在JSP页面头设置及在<head></head>标签中添加下面的代码: ...
- asp.net 通过 Handler 导出数据至excel (让用户下载)
效果图: 代码: Export2Excel.ashx <%@ WebHandler Language="C#" CodeBehind="Export2Excel.a ...
- poi导出word、excel
在实际的项目开发中,经常会有一些涉及到导入导出的文档的功能.apache开源项目之一poi对此有很好的支持,对之前的使用做一些简要的总结. 1,导入jar 为了保证对格式的兼容性,在项目的pom.xm ...
- JS019. 原生JS使用new Blob()实现带格式导出Word、Excel(提供无编程基础将页面上表格导出到本地的方法)
导出效果 代码实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- C#导出Word或Excel文件总显示Html标记
原因:Word或Excel文件包含的GridView没有查询到数据.
- Java使用freemarker导出word和excel
www.linxiaosheng.com/post/2013-12-05/40060346181 https://github.com/upyun/java-sdk
- .net core mvc部署到IIS导出Word 提示80070005拒绝访问
项目中相信大家经常会遇到导出Word.Excel等需求,在实际开发环境中,一般不会出现什么问题,但当发布到IIS上后可能会遇到各种各样的问题,一般都是权限的问题.前几天把公司项目发布后,出现Word导 ...
随机推荐
- windows转mac-开发环境搭建(一):mac上搭建maven环境
1.下载地址:https://maven.apache.org/download.cgi 将下载的maven压缩包进行解压,放入到一个方便管理的文件当中,解压命令:tar zxvf apache-ma ...
- uva 1583
枚举1~100000把所有数的最小generators记录下来,直接查表即可. AC代码: #include<cstdio> #include<cstring> #includ ...
- nyoj161 取石子 (四) 威佐夫博弈
思路:详细证明见博弈总结 如何判断威佐夫博弈的奇异局势? 对于状态(a, b),c = b - a,如果是奇异局势必定满足 a == c * (1+√5)/ 2. AC代码 #include < ...
- 在SpringBoot使用Druid进行数据监控
前言 之前在构建项目初始设计的时候在选择数据库连接的时候就看到Druid有这样的强大的功能.数据监控.对于一个项目来说,数据监控特别重要,之前使用对于数据库的监控都是通过mysql的日志等系统来完成的 ...
- JVM 指令
1.Demo 2.Class 文件说明 2.1 Class文件结构 2.2 jvm type, method signature 2.3 泛型表示 3.方法说明 3.1 方法结构 3.1.1 Thre ...
- Java中过滤出字母、数字和中文的正则表达式
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...
- 个性化WinPE封装方法----制作过程需要了解的“命令”
1.在现有的Windows7条件下,自动在E盘建立mywinpe文件夹,设置 Windows PE 构建环境,并保存到E:\mywinpe下 copype.cmd x86 E:\mywinpe 2.将 ...
- Web.config中设置启用webservice远程调试访问
在.NET 中已经默认将webservice的远程调试功能关闭,有的时候我们需要远程调试程序的时候,就需要打开此功能我们只需在webservice的项目的中添web.config的<system ...
- dtls_srtp学习笔记
注:以下为rfc5764的学习笔记,不保证完全正确. DTLS-SRTP是DTLS的一个扩展,将SRTP加解密与DTLS的key交换和会话管理相结合.从SRTP的角度看,是为其提供一种新的key协商管 ...
- CF367 E - Working routine
十字链表模拟 #include<bits/stdc++.h> using namespace std; int n,m,q; struct Node{ int v; int d,r; }m ...