前端生成的html表格经常需要导出到excel中,利用JS和Office控件可以做到,但仅限于IE,还要启用安全设置。
想找一个简单的办法将HTML内容直接转换成Excel文件,如果直接修改网页头信息输出,虽然可以导出,但打开时会提示格式不是Excel的,怎样才能导出真正的Excel文件?
aspose.cells是个功能强大的控件,可以方便的生成excel文件。经考虑,将html发送到后台,保存为xls文件(其实是html内容),再用aspose.cells打开,输出到客户端,这样就变成了真正的excel文件了。
基本代码:
2 | ddsf | s |
3 | sfas | f |
5 | ggg | g |
fffg | ||
z | f |
function toExcel() {
if (!document.getElementById('div_div_div_1234567890')) {
$('body').append("
+ ""
+ "
"+ ""
+ "
"+ "
}
document.getElementById('input_input_input_1234567890').value = document.getElementById('table1').outerHTML;
document.getElementById('form_form_form_1234567890').action = "htmlTableToExcel.ashx"
document.getElementById('form_form_form_1234567890').submit();
}
htmlTableToExcel.ashx:
using System;
using System.Web;
using Aspose.Cells;
using System.IO;
using System.Text;
public class htmlTableToExcel : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string table = context.Request["table"];
//test info
if (table == null || table == "")
{
table = @"
abc | 123 | 这是测试信息 |
}
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter( stream );
writer.Write( table );
writer.Flush();
//加载选项,html,否则会出错
LoadOptions lo = new LoadOptions(LoadFormat.Html);
Workbook wb = new Workbook(stream, lo);
//输出到浏览器
wb.Save(context.Response, "output.xls", ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Excel97To2003));
}
public bool IsReusable
{
get
{
return false;
}
}
}
以上为简单的测试代码,经检验可以生成excel文件,只是格式方面像边框、宽度什么的就没有了,合并单元格什么的能保留;要是要求不高就将就用着吧。
Aspose.Cells Smart markers 基于模板导出Excel
Aspose.Cells可以预先定义Excel模板,然后填充数据(官方文档:http://www.aspose.com/docs/display/cellsjava/Smart+Markers). 设 ...
c#使用aspose.cells 从datatable导出数据到excel
string json=value.Value; DataTable dt=Utils.JsonDataTableConvert.ToDataTable(json); string fileName ...
C# 读写Excel的一些方法,Aspose.Cells.dll
需求:现有2个Excel,一个7000,一个20W,7000在20W是完全存在的.现要分离20W的,拆分成19W3和7000. 条件:两个Excel都有“登录名”,然后用“登录名”去关联2个Excel ...
Aspose Cells 添加数据验证(动态下拉列表验证)
参考 :http://www.componentcn.com/kongjianjishu/kongjianjishu/2015-06-04/2781.html Aspose Cells是一款操作和处理 ...
C# Aspose.Cells方式导入Excel文件
读取Excel 类 我返回的是DataTable 类型 也可以返回DataSet类型 public class XlsFileHelper { public DataTable ImportExcel ...
常用类-Excel-使用Aspose.Cells插件
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Xm ...
C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
使用Aspose.Cells读取Excel
最新更新请访问: http://denghejun.github.io Aspose.Cells读取Excel非常方便,以下是一个简单的实现读取和导出Excel的操作类: 以下是Aspose.Ce ...
Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行
Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行 模版格式,图格式是最简单的格式,但实际效果不是这种,实际效果图如图2 图2 ,注意看红色部分,一对一是正常的,但是有一对多的订单 ...
随机推荐
UIRefreshControl
在iOS6中UITableViewController 已经集成了UIRefreshControl 控件.UIRefreshControl目前只能用于UITableViewController
C++混合编程之idlcpp教程Python篇(8)
上一篇在这 C++混合编程之idlcpp教程Python篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial6中,同样加入了四个文件:Pyt ...
selenium 3 对我们的影响
The major change in Selenium 3.0 is we're removing the original Selenium Core implementation and rep ...
C++中 :: 的意思
表示作用域,和所属关系 ::是运算符中等级最高的,它分为三种:1)global scope(全局作用域符),用法(::name)2)class scope(类作用域符),用法(class::name) ...
[原创] 初识Agile/CMMI/Scrum
一.背景介绍 在朋友(aehyok)的建议下,初步去了解Visual Studio Online,简称VS Online(即原来的 Team Foundation Service,简称TFS) VS ...
vs如何新建自己工程的环境变量(局部)和 Windows系统(全局).
来源:http://blog.csdn.net/jtop0/article/details/7574139 在vs2008的Project->Property设置里经常会看到类似$ ...
Myeclipse 8.5 优化设置
1.1 更改JavaScript文件默认编码 1.2 关闭Myeclipse不需要的启动项 1.3 取消Myeclipse自动更新 1.4 关闭Myeclipse自动验证 1.5 设置Myeclips ...
mysql SQL语法总结
mysql主键操作 删除表主键: alter table student drop primary key; 增加表主键: alter table student add primary key(id ...
python中的面向对象学习以及类的多态
接下来类的第三个重要的特性:多态(一种接口,多种实现) 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特 ...