asp.net使用Aspose.Cells实现excel预览
在WEB项目中经常遇到excel文档在线预览的需求,基本的解决思路有以下几大类:excel文档转PDF、excel文档直接转html、后台读取excel数据返回给前端利用Excel效果的表格插件如(HandsonTable)将数据进行展示、部署微软Office Online服务(office web apps)实现在线预览、在线的office预览服务(如谷歌docs、微软officeapps)。
EXCEL转HTML
excel转html可以通过第三方工具openoffice、微软office或者第三方类库如POI/NPOI、aspose.cell等转换为html文件。其中POI组件是开源免费的,Java版本叫POI,C#版本叫NPOI。但是转换的效果不是很好,有多个sheet页面的时候,POI会将所有sheet表格展示在一个网页里面,表格顶部会显示sheet名称,如果sheet很多的话页面会很长,出现滚动条页面样式不是很美观。
aspose.cells是收费组件,支持java、.net、.net core,免费使用时候转换出的html页面会有水印“Evaluation Only. Created with Aspose.Cells”如果excel存在多个sheet,aspose转换出来的网页会带选项卡,点击选项卡会展示对应的sheet页面内容,展示效果比POI转换出的html效果的好。
首先在后台使用aspose读取excel文件并返回转换好的html文件目录返回给前台
private readonly ILogger<HomeController> _logger;private readonly IWebHostEnvironment _webHostEnvironment;public HomeController(ILogger<HomeController> logger, IWebHostEnvironment webHostEnvironment){_logger = logger;_webHostEnvironment = webHostEnvironment;}public IActionResult Index(){return View();}public IActionResult Privacy(){return View();}[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]public IActionResult Error(){return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });}/// <summary>/// 返回html地址/// </summary>/// <returns></returns>public string ExcelToHtml(){//程序根目录string rootpath = _webHostEnvironment.ContentRootPath;//程序下webroot根目录string webRootPath = _webHostEnvironment.WebRootPath;string filepath = webRootPath + "\\excelFile\\test.xlsx";//读取模板路径Workbook book = new Workbook(filepath);//filePath为保存文件的地址,需要服务端底下可以正常访问的路径book.Save(webRootPath+ "\\excelFile\\test.html", SaveFormat.Html);return "\\excelFile\\test.html";}
前端接收到后台返回的地址进行一个展示
@{ViewData["Title"] = "Home Page";
}
<script type="text/javascript">//预览excelfunction ExcelToHtml() {$.ajax({url: "/Home/ExcelToHtml",data: "",type: "get",async: false,success: function (data) {debuggerconsole.log(data)//获得窗口的垂直位置var iWidth = 1400;var iHeight = 800;var iTop = (window.screen.availHeight - 30 - iHeight) / 2;//获得窗口的水平位置var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;window.open(data, '_blank', 'height=' + iHeight + ',innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no');},error(err){debugger}});}
</script>
<div class="text-center"><h1 class="display-4">Welcome</h1><p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p><button onclick="ExcelToHtml()">预览excel</button>
</div>
效果如下
asp.net使用Aspose.Cells实现excel预览相关推荐
- Aspose.Cells导入excel文件异常No data is available for encoding 936.
Aspose.Cells导入excel文件异常消息: No data is available for encoding 936.For information on defining a custo ...
- h5页面如何预览excel文件_kintone excel预览插件
Index 概要 这次为大家分享的是,如何用js写出excel文件的预览. 他方便了pc用户和手机端用户可以无需下载,并且直接在线预览excel文件. 因为excel转html的显示用的是第三方开源库 ...
- aspose.cells html excel导出,C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
- 报表中的Excel操作之Aspose.Cells(Excel模板)
本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件.这个组件的强大之处,就不多说,对于我们的报表总是会有导出Excel的处理,如果你使用微软Excel的com组件,那么对于简单的操 ...
- Aspose.Cells 给EXCEL区域内加上单元格边框
//设置excel边框样式 private void SetWorkbookStyle(string path) { Workbook book ...
- 使用Aspose.Cells生成Excel的线型图表
使用Aspose.Cells 根据模板生成excel里面的 line chart 目的: 1.根据模板里面的excel数据信息,动态创建line chart 2.linechart 的样式改为灰色 3 ...
- 使用Aspose.Cells导出excel
先提供数据源,使用aspose创建excel的单元格和各种样式,插入图片,冻结单元格,行高等 public string ExportDemo() { View ...
- EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类
大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls ...
- 利用aspose-cells解决 excel预览的折叠问题
1.jar包 <dependency><groupId>com.aspose.cells</groupId><artifactId>aspose-cel ...
最新文章
- PyCharm的配置与安装
- 深度linux安装spotify,如何在 Linux 上使用 snap 安装 Spotify(声破天)
- C#关键字详解第二节
- 远离你身边消极爱抱怨的人!!
- RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较(转)
- python和pandas有什么关系_python pandas效率到底如何?
- linq的字段自增长属性设置_云途晨报9月9日前,这5类ebay物品属性必须完成更新;Wish体积重计算方式即将更新...
- 从备用类型总盗用steal page
- 91地图坐标系矫正教程
- mysql修改表的内容_sql怎么修改表内容
- html学习笔记2017.12.30
- 查最近一条数据SQL(多条记录时)
- 东田纳西州立大学计算机排名,东田纳西州立大学如何
- Odoo14问题总结——模块视图不显示
- 最强大的截图软件share X 添加英文文字识别
- css gray rgb数值,CSS3 调色板 颜色值对照表
- PyQt5子窗口开启后锁定或隐藏主窗口
- oracle怎么deadlock,APPARENT DEADLOCK!!! 错误解决过程
- thinkphp5整合layuiadmin
- Unity3D图像后处理特效——Grayscale image effect