关于简单的Excel多页签底层导出_电子底账导出为例(.net core)
[HttpPost]
public ActionResult ExpEleAcc(string linknos)
{
string filenname = null;
CommonResult<string> result = new CommonResult<string>();
try
{
string path = WebSettings.TempDirectory+ "Download" ;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string template = "****导出模板.xls";
string tempaltePath = $"{env.WebRootPath}{Path.DirectorySeparatorChar}Template{Path.DirectorySeparatorChar}Export{Path.DirectorySeparatorChar}Dec导出模板{Path.DirectorySeparatorChar}{template}";
string guid = CommonHelper.GetGuid();
filenname = Path.Combine(path, "电子底账" + guid + ".xls");
FileInfo info = new FileInfo(tempaltePath);
info.CopyTo(filenname);
HSSFWorkbook hssfworkbookDown;
//读入刚复制的要导出的excel文件
using (FileStream file = new FileStream(filenname, FileMode.Open, FileAccess.Read))
{
hssfworkbookDown = new HSSFWorkbook(file);
file.Close();
}
DecEHeadService DecEHeadService = new DecEHeadService();
//file = new FileStream(filenname, FileMode.Open, FileAccess.ReadWrite);
List<ExpLedgerField> FirstSheetList = DecEHeadService.GetFirstSheetList(linknos, _appUser.CurrentCorpInfo.Site);
List<ExpLedgerField> SecondSheetList = DecEHeadService.GetSecondSheetList(linknos, _appUser.CurrentCorpInfo.Site);
List<ExpLedgerField> LastSheetList = DecEHeadService.GetLastSheetList(linknos, _appUser.CurrentCorpInfo.Site);
// HSSFSheet sheet = (HSSFSheet)hssfworkbookDown.GetSheetAt(0);
//通过sheet 名字得到sheet页
// HSSFWorkbook workbook = new HSSFWorkbook();
// HSSFSheet sheet = (HSSFSheet)workbook.GetSheet("sheet1");//读取名称为sheet1的sheet
HSSFSheet FirstSheet = (HSSFSheet)hssfworkbookDown.GetSheet("商品信息");
HSSFSheet SecondSheet = (HSSFSheet)hssfworkbookDown.GetSheet("许可证信息");
HSSFSheet LastSheet = (HSSFSheet)hssfworkbookDown.GetSheet("许可证VIN信息");
// string create = "2" + "-" + (i + 1).ToString();
// sheet.CopyTo(hssfworkbookDown, create, true, true);
HSSFCellStyle cellstyle = (HSSFCellStyle)hssfworkbookDown.CreateCellStyle();
//第一个页签关于表体得循环
for (int i = 0; i < FirstSheetList.Count; i++)
{
//比较重要的一点 需要创建行
IRow row = FirstSheet.CreateRow(i+3);
if (FirstSheetList[i].G_NO!=null)
{
//获得行
HSSFCell cell1 = (HSSFCell)FirstSheet.GetRow(i + 3).CreateCell(0);
cell1.SetCellValue(FirstSheetList[i].G_NO);
}
}
//第二个页签关于表体得循环
for (int i = 0; i < SecondSheetList.Count; i++)
{
IRow row = SecondSheet.CreateRow(i + 2);
if (SecondSheetList[i].G_NO != null)
{
HSSFCell cell1 = (HSSFCell)SecondSheet.GetRow(i + 2).CreateCell(0);
cell1.SetCellValue(SecondSheetList[i].G_NO);
}
}
//第三个页签关于表体得循环
for (int i = 0; i < LastSheetList.Count; i++)
{
IRow row = LastSheet.CreateRow(i + 2);
if (LastSheetList[i].G_NO != null)
{
HSSFCell cell1 = (HSSFCell)LastSheet.GetRow(i + 2).CreateCell(0);
cell1.SetCellValue(LastSheetList[i].G_NO);
}
}
//创建文件
FileStream files = new FileStream(filenname, FileMode.Create);
hssfworkbookDown.Write(files);
files.Close();
files.Dispose();
result.Success = true;
// tempaltePath = $"{env.WebRootPath}{Path.DirectorySeparatorChar}Template{Path.DirectorySeparatorChar}Export{Path.DirectorySeparatorChar}Dec导出模板{Path.DirectorySeparatorChar}{template}";
//tempaltePath 模板路径
//filenname 下载路径
//浏览器识别的路径:window.location.href="http://localhost:33795//\\Temp\Export\\导出模板_快递无LOT-20190928062051.xls";
string host = "";
// string host =this.Request.Host.Value + @"//\\Temp\\Download\\"+"电子底账" + guid + ".xls";
if (Request.IsHttps == true)
{
host = @"https://" + this.Request.Host.Value + @"//\\\temp\\Download\\" + "电子底账" + guid + ".xls";
}
else
{
host = @"http://" + this.Request.Host.Value + @"//\\\temp\\Download\\" + "电子底账" + guid + ".xls";
}
result.Data = host;
// return Json(result);
#region 拼接成浏览器识别的路径
//浏览器跳转路径: http://localhost:33795//\\\\Temp\\Export\\\\快递无LOT.NOT_NO-20190927015613.xls
//文件所在的实际物理路径(绝对路径) D:\new v3\src\Happ.Web\Happ.Web.UI\Temp\Export
//获取当前端口, 当前端口名称 , 文件所在文件夹/Temp/Export/aaa.xml 转换为浏览器识别的路径
//Path = BaseController.Host + BaseController.ApplicationPath+ "\\\\Temp\\Export\\\\"+Path;
//浏览器识别的路径:window.location.href="http://localhost:33795//\\Temp\Export\\导出模板_快递无LOT-20190928062051.xls";
#endregion
}
catch (Exception ex)
{
throw ex;
}
finally
{
}
return Json(result);
}
关于简单的Excel多页签底层导出_电子底账导出为例(.net core)的更多相关文章
- 显示 EXCEL 的页签列表
如果你的EXCEL表有很多页签,反复点击左右箭头可能会很费时间. 不妨试试在 左箭头 或者 右箭头 上点击 右键,会有页签列表弹出.
- 使用原生js与jQuery分别实现一个简单的tab页签
tab页签通常适用于空间有限而内容较多同时兼顾页面美观度不给用户一种信息过量视觉疲劳的情形.使用面非常广,下面我们用两种方法简单实现之. 首先,构建页面元素.页签的可点击部分我们通常用列表来承载,包括 ...
- Excel宏录制、数据透视表、合并多个页签
前段时间做数据分析的时候,遇到很多报表文件需要处理,在此期间学习了很多Excel操作,特此做笔记回顾. Excel宏录制 打开开发者工具 打开Excel文件,选择”文件”-->“选项”--> ...
- C#实现Excel操作——添加页签Sheet
C#实现对Excel操作,根据数据的类型不同或者来源不同会放在不同的页签中,C#实现添加页签代码如下:(path为文档保存的地址,dt为要处理的源数据) public void addSheet(st ...
- JavaScript选项卡/页签/Tab的实现
选项卡,也称页签,英文用Tab(Module-Tabs)表示.Tab将不同的内容重叠放在一个布局块内,重叠的内容区里每次只有其中一个是可见的. Tab可以在相同的空间里展示更多的信息,它把相似的主题分 ...
- 利用Apache POI 实现简单的Excel表格导出
1.利用POI API实现简单的Excel表格导出 首先假设一个学生实体类: package com.sun.poi.domain; import java.io.Serializable; impo ...
- Winfon 页签切换及窗体控件自适应
由于公司的业务调整,最近不仅开发bs,还有不熟悉的cs,人手也不足,项目还多,对于cs来说,算是小白,虽然是一个人,也是硬着头皮写,拖拽控件,自定义控件.一个项目下来,对cs有了很深的认识,这里好好感 ...
- tabpanel如何隐藏页签表头以及基本用法总结
tabpanel是extjs中一种比较常用的布局容器控件,也比较简单. ///1:相关的插件, var tabScrollerMenu = Ext.create("Ext.ux.TabScr ...
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
首先题外话,今天早上起床的时候,手滑一下把我的手机甩了出去,结果陪伴我两年半的摩托罗拉里程碑一代就这么安息了,于是我今天决定怒更一记,纪念我死去的爱机. 如果你是网购达人,你的手机上一定少不了淘宝客户 ...
随机推荐
- MinIO 参数解析与限制
MinIO 参数解析与限制 MinIO server 在默认情况下会将所有配置信息存到 ${HOME}/.minio/config.json 文件中. 以下部分提供每个字段的详细说明以及如何自定义它们 ...
- Docker swarm集群增加节点和删除节点
Docker swarm集群增加节点 docker swarm初始化 docker swarm init docker swarm 增加节点 在已经初始化的机器上执行:# docker swarm j ...
- Linux 解决ntfs文件系统问题,支持外设(U盘等设备)的即插即拔
# rpm -q fuse //查看这个软件有没有安装,一般安装系统都会装(最小安装例外) fuse-2.9.2-10.el7.x86_64 # yum -y install gcc # wget h ...
- NW.js打包一个桌面应用
1.安装nw(可以到官网:https://nwjs.io下载) npm install nw -g 2.创建一个最最简单的nw应用 在nwjs文件夹中 新建index.html和package.jso ...
- Unity加载AB包
Unity制作游戏AB包 需要注意的是在游戏场景运行的情况下,不能编译AB包,不运行的情况下编译AB包需要使用Unity的扩展菜单功能,首先需要建立菜单用来编译AB包. 1.建立AB包的名字,首先选中 ...
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之一(二十七)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- 【SSM】自定义属性配置的使用
首先,建立xxx.properties 文件在resource文件夹中,此处我们自定义的配置文件是oj-config.properties 然后,在applicationContext.xml中注册这 ...
- linux配置安装源
ubutu:图形界面或者/etc/apt/sources.list redhat7:可以把DVD安装盘里的软件包拷贝到硬盘,然后设置一个本地源,具体如下: /etc/yum.repos.d/local ...
- 神奇的 SQL 之 MySQL 性能分析神器 → EXPLAIN,SQL 起飞的基石!
前言 开心一刻 某人养了一头猪,烦了想放生,可是猪认识回家的路,放生几次它都自己回来了.一日,这个人想了个狠办法,开车带着猪转了好多路进山区放生,放生后又各种打转,然后掏出电话给家里人打了个电话,问道 ...
- PostGIS 结合Openlayers以及Geoserver实现最短路径分析(二)
前文讲述了怎么用ArcMap制作了测试数据,并导入了PostGIS,接下来我们需要结合PgRouting插件,对入库的数据再进行一下处理. 1.在pgAdmin中,执行下面的sql语句 --添加起点字 ...