在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预览相关推荐

  1. 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 ...

  2. h5页面如何预览excel文件_kintone excel预览插件

    Index 概要 这次为大家分享的是,如何用js写出excel文件的预览. 他方便了pc用户和手机端用户可以无需下载,并且直接在线预览excel文件. 因为excel转html的显示用的是第三方开源库 ...

  3. aspose.cells html excel导出,C#使用Aspose.Cells导出Excel简单实现

    首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...

  4. 报表中的Excel操作之Aspose.Cells(Excel模板)

    本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件.这个组件的强大之处,就不多说,对于我们的报表总是会有导出Excel的处理,如果你使用微软Excel的com组件,那么对于简单的操 ...

  5. Aspose.Cells 给EXCEL区域内加上单元格边框

    //设置excel边框样式         private void SetWorkbookStyle(string path)         {             Workbook book ...

  6. 使用Aspose.Cells生成Excel的线型图表

    使用Aspose.Cells 根据模板生成excel里面的 line chart 目的: 1.根据模板里面的excel数据信息,动态创建line chart 2.linechart 的样式改为灰色 3 ...

  7. 使用Aspose.Cells导出excel

    先提供数据源,使用aspose创建excel的单元格和各种样式,插入图片,冻结单元格,行高等 public string ExportDemo()         {             View ...

  8. EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类

    大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls ...

  9. 利用aspose-cells解决 excel预览的折叠问题

    1.jar包 <dependency><groupId>com.aspose.cells</groupId><artifactId>aspose-cel ...

最新文章

  1. PyCharm的配置与安装
  2. 深度linux安装spotify,如何在 Linux 上使用 snap 安装 Spotify(声破天)
  3. C#关键字详解第二节
  4. 远离你身边消极爱抱怨的人!!
  5. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较(转)
  6. python和pandas有什么关系_python pandas效率到底如何?
  7. linq的字段自增长属性设置_云途晨报9月9日前,这5类ebay物品属性必须完成更新;Wish体积重计算方式即将更新...
  8. 从备用类型总盗用steal page
  9. 91地图坐标系矫正教程
  10. mysql修改表的内容_sql怎么修改表内容
  11. html学习笔记2017.12.30
  12. 查最近一条数据SQL(多条记录时)
  13. 东田纳西州立大学计算机排名,东田纳西州立大学如何
  14. Odoo14问题总结——模块视图不显示
  15. 最强大的截图软件share X 添加英文文字识别
  16. css gray rgb数值,CSS3 调色板 颜色值对照表
  17. PyQt5子窗口开启后锁定或隐藏主窗口
  18. oracle怎么deadlock,APPARENT DEADLOCK!!! 错误解决过程
  19. thinkphp5整合layuiadmin
  20. Unity3D图像后处理特效——Grayscale image effect

热门文章

  1. 提高团队成员的工作积极性/团队凝聚力
  2. Ajax和Json使用入门
  3. 岳父岳母-12个未接电话
  4. s3 java sdk_s3javasdk文档.pdf
  5. Linux笔记1(安装,目录结构,远程登录,vi和vim,用户管理,实用指令。定时调度,挂载。)
  6. 代谢组学数据分析的统计学方法综述
  7. 孙溟㠭书法篆刻《寿》
  8. 树莓派Zero 2W python3.7 安装tensorflow2.2
  9. 欧洲篮球冠军联赛网站
  10. 软件工程课程第二次任务——需求分析与原型设计