效果图:

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特定格式表格的更多相关文章

  1. 利用XSD配合XSLT產出特定格式Word檔案 -摘自网络

    利用類別產生XSD檔 產出XSD檔的目的在於提供Word樣板設計之資料框架 在此使用微軟提供之XML Schema Definition Tool (Xsd.exe)工具產生XSD檔 1. 定義類別 ...

  2. 第四十二节,configparser特定格式的ini配置文件模块

    configparser用于处理特定格式的文件,其本质上是利用open来操作文件. 特定格式的ini配置文件模块,用于处理ini配置文件,注意:这个ini配置文件,只是ini文件名称的文本文件,不是后 ...

  3. linux中date命令显示昨天的日期信息?以特定格式显示时间?

    需求描述: linux环境中,在使用date命令的时候,可以通过-d指定日期的字符串来显示日期 操作过程: 1.通过date显示昨天的日期 [root@redhat6 ~]# date -d 'yes ...

  4. 读取txt文件将文本行组合成特定格式

    有一网友要求从txt文本文件读取一些数据,然后组合为特定格式的数据行.原论题如下,刚才开始的要求描述得不太清楚,后来补充完整了. Insus.NET觉得本论题可有练习文本件读取功力,因此尝试实现一下. ...

  5. 十七 bootstrap-table tableExport 导出xlsx格式表格

    原文:十七 bootstrap-table tableExport 导出xlsx格式表格 在[十六.bootstrap-table javascript导出数据]中,打开导出的表格时,总会弹出一个提示 ...

  6. C#关于时间(获取特定格式的时间及多种方式获取当前时间戳)以及10位和13位时间戳转为特定格式

    C#关于时间(获取特定格式的时间及多种方式获取当前时间戳)以及10位和13位时间戳转为特定格式 置顶 2018年03月06日 19:16:51 黎筱曦 阅读数:19098 标签: C#时间 更多 个人 ...

  7. PhpSpreadsheet 导出特定格式 — 广告请款单

    需求说明 最近需要实现一个导出这种格式的Excel表单,之前都有用过导出Excel的功能,但大都是表头+数据的形式,只用于获取数据,没有太多样式要求,不用合并单元格.合并居中等,也不用对每一行数据特异 ...

  8. sublime text 3 文件列表忽略特定格式的文件

    Preferences->Settings ,编辑相关代码,注意JSON格式: 排除特定目录,使用:"folder_exclude_patterns" 排除特定文件,使用:& ...

  9. 手写OOXML文档——导出xlsx格式表格文档

    一.准备工作: 2个js库,另外把样式文件抽离出来 require('file-saver'); import JSZip from 'jszip' import {stylesData,theme1 ...

随机推荐

  1. 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统

    今天,我们要玩个大的!!! 我们把之前使用数组做的这个单身狗系统改版成数据库版本,并且使用面向对象里面的一些简单思想.如果有不知道这个系统的看官,请跳转到目录页,然后再选择单身狗系统(数组版)先围观五 ...

  2. nested exception is java.lang.IllegalArgumentException: Pointcut is not well-formed

    在用AOP 的时候出现了如下的错误, 警告: Exception encountered during context initialization - cancelling refresh atte ...

  3. 浅析强连通分量(Tarjan和kosaraju)

    理解   在有向图G中,如果两点互相可达,则称这两个点强连通,如果G中任意两点互相可达,则称G是强连通图. 定理: 1.一个有向图是强连通的,当且仅当G中有一个回路,它至少包含每个节点一次.     ...

  4. 【JVM】Java中的JavaCore/HeapDump文件及其分析方法

    产生时间 Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下. 有时致命问题发生后,Java应用不会死掉,还能继续运行: 但有时致命问题 ...

  5. 寻找bug并消灭系列——记录在Android开发所遇到的bug(一)

    之前使用了Android Studio的插件直接为button绑定了监听器,并实现onClick方法(我的onClick方法无论点击哪一个都是要实现setcontentview这个方法设置layout ...

  6. 使用javaAPI操作hdfs

    欢迎到https://github.com/huabingood/everyDayLanguagePractise查看源码. 一.构建环境 在hadoop的安装包中的share目录中有hadoop所有 ...

  7. 偏置-方差分解(Bias-Variance Decomposition)

    本文地址为:http://www.cnblogs.com/kemaswill/,作者联系方式为kemaswill@163.com,转载请注明出处. 机器学习的目标是学得一个泛化能力比较好的模型.所谓泛 ...

  8. 关于加载离线SHP文件、geodatabase文件所遇到的路径问题

    正文开始之前还是先吐槽一下,一行代码DEBUG了一天不知道怎么改,终于误打误撞弄出来了(以下以shp文件为例) 对于虚拟机测试 public String getPath(){ File sdDir ...

  9. Java Socket通信以及可能出现的问题解决

    Java中基于TCP协议实现网络通信的两个类:客户端的Socket和服务器端的ServerSocket. Socket通信模型如图所示: 不管Socket通信的功能有多复杂,任何socket通信过程的 ...

  10. Android 性能测试之方向与框架篇

    假期结束,你的状态有没有回归?那么,放空脑袋后,先来学习学习,欢迎大家继续关注腾讯云技术社区. 作者:李帅 导语 借项目的开发周期,把思考了一段时间的场景化性能测试框架搭建起来,包括 耗电性能测试.内 ...