C# Aspose填充excel模板数据,下载
public Result<object> GetAExcelFieItem(string[] aid, int kind, string contype) {
string fileUrl = AppDomain.CurrentDomain.BaseDirectory + "\\Template\\FileItemData.xls";
Result<object> result = new Result<object>();
try
{
List<Volumes> listvol = Item.Where(w => aid.Any(a => a == w.ID)).OrderBy(o => o.Sort).ToList(); //获取数
WorkbookDesigner designer = new WorkbookDesigner();
Workbook workbook = new Workbook(fileUrl);
Worksheet worksheet = workbook.Worksheets[];
Cells cells = worksheet.Cells;
Aspose.Cells.Range range = cells.CreateRange("A1", "G19");
//打开模板文件,得到WorkBook对象
int allpagecount = ;
listvol = listvol == null ? new List<Volumes>() : listvol;
foreach (var vol in listvol)
{
var vlis = List.Where(p=> p.VolumesID == vol.ID).OrderBy(p=> p.Sort).ToList();
int pagecount = vlis.Count / + (vlis.Count % == ? : ); //当前卷的总页数
for (int j = ; j <= pagecount; j++)
{
int startrow = allpagecount * ;
Aspose.Cells.Range range2 = cells.CreateRange(startrow, , startrow+, );
range2.Copy(range);
range2.RowHeight = ;
worksheet.Cells[startrow + , ].PutValue(vol.VolumesName);
worksheet.Cells[startrow + , ].PutValue(vol.VolumesCode);
worksheet.Cells[startrow + , ].PutValue(vol.RetentionPeriod);
cells.SetRowHeight(startrow + , );
cells.SetRowHeight(startrow + , );
worksheet.Cells.ClearContents(startrow + , , startrow + , );//删除起始单元格到结束单元格数据
int pagerow = (j == pagecount && vlis.Count % != ) ? vlis.Count % : ;//当前页行数
object[,] arr = new object[pagerow, ];
for (int i = ; i < pagerow; i++)
{
int index = (j - ) * + i;//当前行在卷内的序号
worksheet.Cells[startrow + + i, ].PutValue(vlis[index].Sort);
worksheet.Cells[startrow + + i, ].PutValue(vlis[index].FileCode);
worksheet.Cells[startrow + + i, ].PutValue(vlis[index].Responsible);
worksheet.Cells[startrow + + i, ].PutValue(vlis[index].FileName);
worksheet.Cells[startrow + + i, ].PutValue(vlis[index].FileDate);
worksheet.Cells[startrow + + i, ].PutValue(vlis[index].PageNum);
worksheet.Cells[startrow + + i, ].PutValue(vlis[index].Remark);
}
allpagecount++;
}
}
System.IO.MemoryStream ms = workbook.SaveToStream();//生成数据流
//转换成流字节,输出浏览器下载
byte[] ret = ms.GetBuffer();
result.Data = ret;
result.Message = "目录.xls";
result.DataCount = ;
//关闭流
ms.Close();
GC.Collect();
}
catch (Exception e)
{
result.Flag = false;
GC.Collect();
if (e.InnerException != null)
result.Message = e.InnerException.Message;
else
result.Message = e.Message;
}
return result;
}
C# Aspose填充excel模板数据,下载的更多相关文章
- java后台读取excel模板数据
/** * 读取EXCEL模板数据 * * @param excelFilePath excel文件路径 * @param dataRowNum 开始读取数据的行数 * @param keyRowNu ...
- excel模板数据填充 :tablefill
背景(问题) 在Web后台系统中或多或少都存在导入数据的功能,其中操作流程基本是 1.下载模板 2.填充模板数据 3.上传模板 但通常比较耗费时间的是填充模板数据这一步骤, 已自己为例之前的数据要么是 ...
- 不会吧不会吧,还有开发不会Java填充PDF模板数据的,赶紧看看吧
思路 根据业务需求,获取实际业务数据,借助itext库功能,将业务数据填充入提前制作好的PDF模板中 操作步骤 制作PDF模板:提前下载好Adobe Acrobat Pro DC 效果展示 准备PDF ...
- PPT、Word、Excel模板免费下载
本篇文章可能只有寥寥数字,但他的作用可能很大,可能帮助到很多朋友.本人喜欢搜集一些资源,也爱免费分享,因为好东西我藏不住,总感觉分享出来更快乐. 网址:https://www.bangongziyua ...
- java导出excel模板数据
Java导出excel数据模板,这里直接贴代码开发,流程性的走下去就是步骤: String[] colName=new String[]{"期间","科目代码" ...
- 【.Net 学习系列】-- 利用Aspose转换Excel为PDF文件
功能: 从数据库中查询出数据 利用Aspose.cell + Excel模板绑定数据源生成Excel文件 通过Aspose.pdf + 生成好的Excel生成PDF文件 实现: 查询数据,根据Exce ...
- java实现赋值excel模板,并在新文件中写入数据,并且下载
/** * 生成excel并下载 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new ...
- 用NPOI从DataTable到Excel,向Excel模板填充数据
DataTable---->Excel,填充数据 private IWorkbook workbook = null; private ISheet sheet = null; private ...
- c# Aspose.Cells 通过Excel模板生产excel数据再打印
多的不说,我们先来利用Northwind做两个小demo.先说说Aspose.Cells的模板语法: &=DataSource.Field,&=[DataSource].[Field] ...
随机推荐
- JaveScript初学-基础语法
一.JavaScript数据类型 JavaScript中,一切皆对象. JavaScript拥有动态类型,使用var关键字(也可以不必)进行声明——字符串.数字.布尔.对象.Null.Undefine ...
- Android 与 iOS 推送 Push Notification 的区别
Android 安卓使用 GCM (Google Cloud Messaging) 接收推送,然后应用根据实际情况决定做什么反应,比如显示一个 Notification. 所以安卓下,推送 Push ...
- python中的基本数据类型(int,bool,str)及字符串操作
一. 基本数据类型概况 1. int 整数,主要用来进行数学运算 2. str 字符串,可以保存少量数据并进行相应的操作 3. bool 布尔值,判断真假,True,False 4. list ...
- Syncthing源码解析 - 在Gogland中对Syncthing的各个模块进行调试?
Syncthing的模块很多,各自负责不同的功能,如何能够对各个模块进行调试?Syncthing开发者早就想到这个问题了,允许开发者对任意模块进行单独调试,也允许同时对所有模块调试,调试方式是打印各个 ...
- sqlite3简单操作
最近在操作公司视频设备的tutk转发服务器的时候,用到的数据库是sqlite,在此复习一下 目录 1 建立数据库档案 2 在sqlite3提示列下操作 3 SQL的指令格式 4 建立资料表 5 建立索 ...
- python2 中 unicode 和 str 之间的转换及与python3 str 的区别
在python2中字符串分为unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时需 ...
- 2017.06.04【NOIP提高组】模拟赛B组:
t1 jzoj3762 过河 路径分段,计算出向上移对答案贡献最大的一段路,再使用堆来维护即可 代码: #include<bits/stdc++.h> using namespace st ...
- Python(简单计算器)
参考:https://www.cnblogs.com/alex3714/articles/5169958.html import re ret = re.search('\([^()]+\)','(1 ...
- java_对象序列化
对象序列化(serializable) 序列化读:ObjectInputStream ois=new ObjectInputStream(new FileInputStream("./gg ...
- Python中 '==' 与'is' 以及它们背后的故事
摘要 比较判断逻辑是在代码中经常使用的,在Python中常用 '==' 和 is 来做比较判断. == : 双等号是用来比较变量所指向内存单元中的值是否相等,它只关心值,并不在意值的内存地址,也就 ...