将数据导出到Excel2007格式。
增加数据格式
public static void TableToExcel2(DataTable table, string filename, string sheetname)
{ XSSFWorkbook workbook = new XSSFWorkbook();
IFont font = workbook.CreateFont();
font.FontName = "微软雅黑";
font.FontHeightInPoints = 9; IFont fonthader = workbook.CreateFont();
fonthader.FontName = "微软雅黑";
fonthader.FontHeightInPoints = 9;
fonthader.Boldweight = (short)FontBoldWeight.Bold; ICellStyle style1 = workbook.CreateCellStyle();
style1.SetFont(font); ICellStyle stylehead = workbook.CreateCellStyle();
stylehead.SetFont(fonthader); var sheet = workbook.CreateSheet(sheetname); var headerRow = sheet.CreateRow(0); //head
foreach (DataColumn column in table.Columns)
{ var cellhead = headerRow.CreateCell(column.Ordinal);//
cellhead.CellStyle = stylehead;
cellhead.SetCellValue(column.Caption); } //设置大类限制
ArrayList cat1 = new ArrayList();
DataSet ds = DBHelper.Instance.ExeDataSet(" select catname from purchase_categories where iscat=1 and parentid=0 ");
foreach (DataRow dr in ds.Tables[0].Rows)
{
cat1.Add(dr["catname"]);
} IDataValidationHelper dvHelper = sheet.GetDataValidationHelper();
NPOI.SS.Util.CellRangeAddressList regCat1 = new NPOI.SS.Util.CellRangeAddressList(1, 8000, 0, 0);
IDataValidationConstraint constraint = dvHelper.CreateFormulaListConstraint("CHOICES");
constraint.ExplicitListValues = (string[])cat1.ToArray(typeof(string));
IDataValidation validation = dvHelper.CreateValidation(constraint, regCat1);
sheet.AddValidationData(validation); //小类
regCat1 = new NPOI.SS.Util.CellRangeAddressList(1, 8000, 1, 1);
cat1 = new ArrayList();
ds = DBHelper.Instance.ExeDataSet(" select catname from purchase_categories where iscat=1 and parentid!=0 ");
foreach (DataRow dr in ds.Tables[0].Rows)
{
cat1.Add(dr["catname"]);
} constraint = dvHelper.CreateFormulaListConstraint("CHOICES");
constraint.ExplicitListValues = (string[])cat1.ToArray(typeof(string));
validation = dvHelper.CreateValidation(constraint, regCat1);
sheet.AddValidationData(validation); ////单位
regCat1 = new NPOI.SS.Util.CellRangeAddressList(1, 8000, 6, 6);
cat1 = new ArrayList();
DataView dv = Purchase.BLL.PurchaseHelper.GetParam("unit");
foreach (DataRowView dvr in dv)
{
cat1.Add(dvr["paramname"]);
}
constraint = dvHelper.CreateFormulaListConstraint("CHOICES");
constraint.ExplicitListValues = (string[])cat1.ToArray(typeof(string));
validation = dvHelper.CreateValidation(constraint, regCat1);
sheet.AddValidationData(validation); ////货币单位
regCat1 = new NPOI.SS.Util.CellRangeAddressList(1, 65535, 8, 8);
cat1 = new ArrayList();
dv = Purchase.BLL.PurchaseHelper.GetParam("currency");
foreach (DataRowView dvr in dv)
{
cat1.Add(dvr["paramname"]);
}
constraint = dvHelper.CreateFormulaListConstraint("CHOICES");
constraint.ExplicitListValues = (string[])cat1.ToArray(typeof(string));
validation = dvHelper.CreateValidation(constraint, regCat1);
sheet.AddValidationData(validation); //////货币单位
regCat1 = new NPOI.SS.Util.CellRangeAddressList(1, 65535, 11, 11);
cat1 = new ArrayList();
dv = Purchase.BLL.PurchaseHelper.GetParam("shipmethod");
foreach (DataRowView dvr in dv)
{
cat1.Add(dvr["paramname"]);
}
constraint = dvHelper.CreateFormulaListConstraint("CHOICES");
constraint.ExplicitListValues = (string[])cat1.ToArray(typeof(string));
validation = dvHelper.CreateValidation(constraint, regCat1);
sheet.AddValidationData(validation); //body
var rowIndex = 1;
foreach (DataRow row in table.Rows)
{
var dataRow = sheet.CreateRow(rowIndex);
dataRow.HeightInPoints = 20;
foreach (DataColumn column in table.Columns)
{ ICell cell = dataRow.CreateCell(column.Ordinal);
cell.SetCellValue(row[column].ToString()); cell.CellStyle = style1;
}
rowIndex++;
} FileStream sw = File.Create(HttpContext.Current.Server.MapPath(filename));
workbook.Write(sw);
sw.Close(); }

将数据导出到Excel2007格式。的更多相关文章
- 使用NPOI将数据导出为word格式里的table
开发环境:VS2013+MySQL5.5+EF6+NPOI2.0.6 格式:WinForm+CodeFirst PS:vs2013的CodeFirst很方便了啊 CodeFirst方式就不再赘述了. ...
- 利用PHPExcel将数据导出到xls格式的excel文件
在开发某地的经营许可证管理系统的时候需要将数据导出打excel文件,虽然一年前做某集团的ERP的时候用到过一次导入和导出,但是那时候太忙没时间写博客,一年过去了我也忘的差不多了,所以趁着今天将此次的使 ...
- 跨平台图表控件TeeChart使用教程:将图表数据导出为XML格式
在开发者使用TeeChart进行开发的过程中,不管是在设计时或者运行时都可以使用的图表导出对话框将图表数据轻易地导出为XML格式: TeeChart最新版那下载地址 上图为TeeChart导出对话框的 ...
- Elasticsearch:如何把Elasticsearch中的数据导出为CSV格式的文件
本教程向您展示如何将数据从Elasticsearch导出到CSV文件. 想象一下,您想要在Excel中打开一些Elasticsearch中的数据,并根据这些数据创建数据透视表. 这只是一个用例,其中将 ...
- 将数据 导出excel表格式
我的考试完提交生成的数据 这是我的考试题类型 //导出调查评议的数据 public function diaocha(){ $xlsName = '表格形式 调查评议 信息'; $xlsTitle = ...
- SPOOL 命令使用实例【oracle导出纯文本格式文件】
SPOOL 命令使用实例[oracle导出纯文本格式文件] SET echo off --在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句: SET ...
- MySQL--mysqldump(数据导出工具)
mysqldump 客户端工具用来备份数据库或在不同数据库之间进行数据迁移.备份内容包含创建表或装载表的 SQL 语句.mysqldump 目前是 MySQL 中最常用的备份工具. 有 3 种方式来调 ...
- .net解决数据导出excel时的格式问题
在项目中一般都需要将报表数据导出到EXCEL中,但经常出现导出长串数据(如身份证)到EXCEL中后显示为科学计数法的格式,或者报表中显示为001的数据导出到Excel后成了1的格式. 下面简单介绍一下 ...
- Dev GridControl数据导出格式问题
环境:DevExpress9.3,Vs2008 DevExpress的GridControl提供方便的数据导出到Excel功能,导出中用户可以根据GridControl的格式进行导出(ExportTo ...
随机推荐
- DIV布局-高度不同DIV,自动换行并对齐
最近弄了一个动态添加div框,每个div框内容有多有少,要支持div高度自适应,还要添加的div自动追加,并且换行还要保持每行对齐. 刚开始的效果: 要改啊,搞不定,问了UI高手,终于给出了完美解决方 ...
- 状态机学习(三)解析JSON
来自 从零开始的 JSON 库教程 从零开始教授如何写一个符合标准的 C 语言 JSON 库 作者 Milo Yip https://zhuanlan.zhihu.com/json-tutorial ...
- (转)Quartus II和Modelsim的联合仿真(详细)
这篇文章不需要在modelsim中建库.映射.建工程等一些繁琐的步骤,直接使用modelsim中的默认work库.使用quartus+modelsim联合仿真. 首先推荐一篇文章 http://www ...
- xcode 制作静态库.a文件 详解
http://blog.csdn.net/kepoon/article/details/21516977 最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者Fram ...
- linux 常用目录
/bin 执行文件 ls, mv, rm, mkdir, rmdir, gzip, tar, telnet /boot linux核心文件内核 vmlinuz-xxx(Linux 的 Kernel ...
- struts2的result的type属性
一共有两个属性name和type name这里就不介绍了 type 返回结果的类型,值可以从default-struts.properties中看到看到 常用的值:dispatcher (默认) ...
- 使用my exclipse对数据库进行操作(1)
一.查找 public class class1 { public static void main(String[] args) { // TODO Auto-generated method st ...
- C# 基础(5)--字符串
Params 可变参数,只能修饰数组,可以传递数组,也可以传递数组的元素. 要抛弃一个异常,可以这样写: Throe new exeception?? 命名空间 不在同一个命名空间下的类,不同直接访问 ...
- sql like 查询
查询 ids 含有 4 的 精确到4 54 不查询 select * from t_g_sku where ','||ids||',' like '%,4,%'; 序号 id mid quant ...
- Activity之间的通信
通常Activity之间的通信有三种方式:单向不传参数通信.单项传参数通信和双向通信. 这几种传递方式都需要通信使者Intent.以下将用代码来辅助理解. 1.单向不传递参数通信 public cla ...