AsposeCell特定格式表格
效果图:

Workbook workbook = new Workbook();
Worksheet sheet = (Worksheet)workbook.Worksheets[0];
Cells cells = sheet.Cells;
cells.SetColumnWidth(8, 15);
cells.SetColumnWidth(3, 16);
cells.SetColumnWidth(0, 17);
List<string> institutionList = (from DataRow q in dt.Rows
select q["institutionId"].ToString()).ToList().Distinct().ToList();
int y = 0;
List<Institution> insList = new List<Institution>();
if (institutionList.Count > 0)
{
insList = (from q in Institution.CreateContext()
where institutionList.Contains(q.Id)
select q).ToList();
}
foreach (string institution in institutionList)
{
Institution ins = (from q in insList
where q.Id == institution
select q).FirstOrDefault();
DataRow[] drs = (from DataRow q in dt.Rows
where q["institutionId"].ToString() == institution
select q).ToArray();
List<string> userIds = new List<string>();
foreach (var dr in drs)
{
userIds.Add(dr["userId"].ToString());
}
userIds = (from q in userIds select q).ToList().Distinct().ToList();
foreach (var userId in userIds)
{
DataRow[] drstu = (from DataRow q in dt.Rows
where q["institutionId"].ToString() == institution && q["userId"].ToString() == userId
select q).ToArray();
Aspose.Cells.Style style = workbook.Styles[workbook.Styles.Add()];//新增样式
//标题
style.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style.Font.Name = "宋体";//文字字体
style.Font.Size = 14;//文字大小
style.Font.IsBold = true;//粗体
cells.Merge(y, 0, 1, 10); //合并单元格
cells[y, 0].PutValue(string.Format("{0}{1}考试通知单", drstu[0]["examName"].ToString(), drstu[0]["institutionName"].ToString())); //填写内容
cells[y, 0].SetStyle(style); //给单元格关联样式
cells.SetRowHeight(y, 28); //设置行高
style.HorizontalAlignment = TextAlignmentType.Left;//文字居左
style.Font.Size = 10;
style.Font.IsBold = false;
cells.Merge(y + 1, 0, 1, 4);
cells.Merge(y + 1, 4, 1, 6);
cells[y + 1, 0].PutValue("班级:");
cells[y + 1, 4].PutValue(string.Format("{0}{1}", drstu[0]["courseName"].ToString(), drstu[0]["courseCode"].ToString()));
cells[y + 1, 0].SetStyle(style);
cells.SetRowHeight(y + 1, 14);
string[] titles = new string[] { "学号", "姓名", "试卷号", "考试科目", "考核形式", "考场号", "座位号", "考试日期", "考试时间", "留考" };
style.HorizontalAlignment = TextAlignmentType.Center;//文字居中
for (int i = 0; i < 10; i++)
{
cells[y + 2, i].PutValue(titles[i]);
cells[y + 2, i].SetStyle(style);//调整样式
}
style.HorizontalAlignment = TextAlignmentType.Center;//文字居中
for (int j = 0; j < drstu.Length; j++)//行
{
cells[y + 3 + j, 0].PutValue(drstu[j]["code"].ToString());
cells[y + 3 + j, 1].PutValue(drstu[j]["displayName"].ToString());
cells[y + 3 + j, 2].PutValue(string.IsNullOrEmpty(drstu[j]["paperano"].ToString()) ? "---" : drstu[j]["paperano"].ToString());
cells[y + 3 + j, 3].PutValue(drstu[j]["courseName"].ToString());
cells[y + 3 + j, 4].PutValue(drstu[j]["IsOpenBook"].ToInt() == 1 ? "开卷" : "闭卷");
cells[y + 3 + j, 5].PutValue(drstu[j]["placeNumber"].ToString());
cells[y + 3 + j, 6].PutValue(drstu[j]["seatNumber"].ToString());
cells[y + 3 + j, 7].PutValue(drstu[j]["startTime"].ToDateTime().ToShortDateString().ToString());
cells[y + 3 + j, 8].PutValue(string.Format("{0} - {1}", drstu[j]["startTime"].ToDateTime().ToShortTimeString().ToString(), drstu[j]["endTime"].ToDateTime().ToShortTimeString().ToString()));
cells[y + 3 + j, 9].PutValue(drstu[j]["isstay"].ToInt() == 1 ? "是" : "否");
}
cells[y + 3 + drstu.Length, 0].PutValue("考点名称:");
cells.Merge(y + 3 + drstu.Length, 1, 1, 3);
cells[y + 3 + drstu.Length, 1].PutValue(ins.Name);
cells[y + 3 + drstu.Length, 4].PutValue("考点地址:");
cells.Merge(y + 3 + drstu.Length, 5, 1, 5);
cells[y + 3 + drstu.Length, 5].PutValue(ins.Address);
y = y + 5 + drstu.Length;
}
}
AsposeCell特定格式表格的更多相关文章
- 利用XSD配合XSLT產出特定格式Word檔案 -摘自网络
利用類別產生XSD檔 產出XSD檔的目的在於提供Word樣板設計之資料框架 在此使用微軟提供之XML Schema Definition Tool (Xsd.exe)工具產生XSD檔 1. 定義類別 ...
- 第四十二节,configparser特定格式的ini配置文件模块
configparser用于处理特定格式的文件,其本质上是利用open来操作文件. 特定格式的ini配置文件模块,用于处理ini配置文件,注意:这个ini配置文件,只是ini文件名称的文本文件,不是后 ...
- linux中date命令显示昨天的日期信息?以特定格式显示时间?
需求描述: linux环境中,在使用date命令的时候,可以通过-d指定日期的字符串来显示日期 操作过程: 1.通过date显示昨天的日期 [root@redhat6 ~]# date -d 'yes ...
- 读取txt文件将文本行组合成特定格式
有一网友要求从txt文本文件读取一些数据,然后组合为特定格式的数据行.原论题如下,刚才开始的要求描述得不太清楚,后来补充完整了. Insus.NET觉得本论题可有练习文本件读取功力,因此尝试实现一下. ...
- 十七 bootstrap-table tableExport 导出xlsx格式表格
原文:十七 bootstrap-table tableExport 导出xlsx格式表格 在[十六.bootstrap-table javascript导出数据]中,打开导出的表格时,总会弹出一个提示 ...
- C#关于时间(获取特定格式的时间及多种方式获取当前时间戳)以及10位和13位时间戳转为特定格式
C#关于时间(获取特定格式的时间及多种方式获取当前时间戳)以及10位和13位时间戳转为特定格式 置顶 2018年03月06日 19:16:51 黎筱曦 阅读数:19098 标签: C#时间 更多 个人 ...
- PhpSpreadsheet 导出特定格式 — 广告请款单
需求说明 最近需要实现一个导出这种格式的Excel表单,之前都有用过导出Excel的功能,但大都是表头+数据的形式,只用于获取数据,没有太多样式要求,不用合并单元格.合并居中等,也不用对每一行数据特异 ...
- sublime text 3 文件列表忽略特定格式的文件
Preferences->Settings ,编辑相关代码,注意JSON格式: 排除特定目录,使用:"folder_exclude_patterns" 排除特定文件,使用:& ...
- 手写OOXML文档——导出xlsx格式表格文档
一.准备工作: 2个js库,另外把样式文件抽离出来 require('file-saver'); import JSZip from 'jszip' import {stylesData,theme1 ...
随机推荐
- virtualbox修改主机名
virtualbox修改主机名 /etc/hostname /etc/hosts
- 工作中对数组的一些处理,整理(结合underscore.js)
1.数组里边相同元素提取成map,并以'',''分隔 例如:var arr = [{a:"xx",b:''xxx''},{a:"xxx",b:''xxxxx'' ...
- websocket的理解及实例应用
websocket协议是HTML5提出的一个新的规范,主要用于实现服务器及时推送信息给客户端的功能. websocket实现是基于HTTP协议的部分握手功能,但是websocket仅仅握手一次即可进行 ...
- 深入浅出AQS之独占锁模式
每一个Java工程师应该都或多或少了解过AQS,我自己也是前前后后,反反复复研究了很久,看了忘,忘了再看,每次都有不一样的体会.这次趁着写博客,打算重新拿出来系统的研究下它的源码,总结成文章,便于以后 ...
- popOver 弹出框简单使用
1.仿QQ弹出框 1.1用到的知识点 1.1.1如何调整弹出框的大小(这里弹出的也是控制器) 这里已经有讲解过http://blog.csdn.net/iostiannan/article/detai ...
- 【Python练习1】统计一串字符中英文字母、空格、数字和其他字符的个数
练习思路: 1.输入一串字符 2.筛选出字符中的英文字母并统计 3.筛选出字符中的空格并统计 4.筛选出字符中的数字并统计 5.筛选出字符中的其他字符并统计 代码实现: def msg(s): abc ...
- vue学习之vue基本功能初探
vue学习之vue基本功能初探: 采用简洁的模板语法将声明式的将数据渲染进 DOM: <div id="app"> {{ message }} </div> ...
- 初学node.js有感三
WebStorm下的node.js 一.回顾与继续 在前面,我们知道了node.js的基本框架和思路,在这些原生环境下我们对node.js的设计思想有了比较深刻的认识,并且具有了编写大型程 ...
- 分享基于分布式Http长连接框架--代码模型
好的代码应该是方便客户端使用,代码能够自描述,规范化,大众标准化. 而且我相信代码也是有生命的,需要不断的维护它,你以什么样的态度对待它,它就会以同样的态度回敬你,所以在写代码前,先摆好自己的态度(一 ...
- 【Spring】面向切面之AOP
前言 前面已经讲解了bean的装配技术,接着学习Spring中另外一个核心概念:切面. 面向切面 面向切面编程 切面能够帮助模块化横切关注点,横切关注点可以被描述为影响应用的功能,如为业务添加安全和事 ...