Microsoft.Office.Interop.Excel 导出Excel
private const int OLDOFFICEVESION = -;
private const int NEWOFFICEVESION = ;
/// <summary>
/// 使用 Excel.dll 导出 Excel
/// </summary>
/// <param name="list">数据</param>
/// <param name="filename">名称</param>
/// <param name="ColumNames">标题名(数组-所有标题)</param>
/// <param name="FileNames">标题名对应的数据库字段名称(数组-标题对应字段)</param>
public void InteropToExcel<T>(IList<T> list, string filename, string[] ColumNames, string[] FileNames)
{
PropertyInfo[] propertyInfos = list.First().GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance); //保存excel文件的格式
int FormatNum;
//excel版本号
string Version;
Application xlApp = new Application();
Workbooks workbooks = xlApp.Workbooks;
//创建文件
Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
//创建sheet
Worksheet worksheet = (Worksheet)workbook.Worksheets[];
//这里是 Excel 表格中 第一行第一列的位置是[1,1] 不是 [0,0]
// 设置Excel 表格中 第一行的标题 字体居中
for (int i = ; i < ColumNames.Length; i++)
{
worksheet.Cells[, i + ] = ColumNames[i];
((Range)worksheet.Cells[, i + ]).HorizontalAlignment = XlVAlign.xlVAlignCenter;
}
foreach(T item in list)
{
if (list == null)
{
return;
}
for (int i = ; i < FileNames.Length; i++)
{
for (int j = ; j < propertyInfos.Length; j++)
{
PropertyInfo pi = propertyInfos[i];
if(pi.Name == FileNames[i])
{
worksheet.Cells[i + , i + ] = pi.GetValue(item, null).ToString();
}
}
}
}
//添加内容 worksheet.StandardWidth = 15d; // 设置宽度
//获取你使用的excel 的版本号
Version = xlApp.Version;
//使用Excel 97-2003
if (Convert.ToDouble(Version) < )
{
FormatNum = OLDOFFICEVESION;
}
//使用 excel 2007或更新
else
{
FormatNum = NEWOFFICEVESION;
}
//保存,这里必须指定FormatNum文件的格式,否则无法打开创建的excel文件
workbook.SaveAs(filename, FormatNum);
//显示创建的excel文件
xlApp.Visible = true;
}
Microsoft.Office.Interop.Excel 导出Excel的更多相关文章
- C# Microsoft.Office.Interop.Owc11 导出excel文件
C# Microsoft.Office.Interop.Owc11 导出excel文件 1.新建项SupremeWindowsForms窗体应用项目(项目平台设置称X86) 注意:因为大多数第三方写的 ...
- 使用Microsoft.Office.Interop.Excel.dll 文件来生成excel 文件
日常工作中经常需要将后台的数据导出成excel 格式,这里通过调用微软提供的类库来生成excel 文件. 具体是引用 了Microsoft.Office.Interop.Excel.dll 类库文件 ...
- NPOI写Excel,Microsoft.Office.Interop.excel.dll 转换Excel为PDF
首先要引用NPOI动态库和Microsoft.Office.Interop.excel.dll (Microsoft.Office.Interop.excel.dll 下载链接 ,下载以后解压文件,把 ...
- 使用Microsoft.Office.Interop.Excel时,64位问题
前不久,碰到一个问题. 曾经用的好好的Microsoft.Office.Interop.Excel实现的导出Excel,迁移至64位server后,就出现: 检索 COM 类工厂中 CLSID 为 { ...
- Microsoft.Office.Interop.Excel的用法以及利用Microsoft.Office.Interop.Excel将web页面转成PDF
1.常见用法 using Microsoft.Office.Interop.Excel; 1)新建一个Excel ApplicationClass ExcelApp = New A ...
- 引用Microsoft.Office.Interop.Excel出现的问题
引用Microsoft.Office.Interop.Excel出现的问题 转自:http://www.hccar.com/Content,2008,6,11,75.aspx,作者:方继祥 操作背 ...
- Microsoft.Office.Interop.Excel操作Excel文件时出现的问题及解决方案
问题描述: Microsoft.Office.Interop.Excel.Worksheet 打不开文件 Microsoft Office Excel 不能访问文件"a.xls". ...
- Microsoft.Office.Interop.Excel 程序集引用 ,Microsoft.Office.Interop.Excel.ApplicationClass 无法嵌入互操作类型
using Microsoft.Office.Interop.Excel 添加程序集引用 方法:在引用--程序集--扩展中,添加引用Microsoft.Office.Interop.Excel,此 ...
- 利用Microsoft.Office.Interop.Excel 将web页面转成PDF
网上有很多将Web页面转成PDF的方法,还有许多收费的第三方插件.其实利用Office 自带的将EXCEL发布成PDF的功能就可以实现,如果你的需求没有多复杂,可以采用笔者的方法. 首先将web页面h ...
- Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决)
Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决) 论坛里的帮助:http://bbs.csdn.net/topics/39 ...
随机推荐
- linux系统分区表修复
有些时候在系统突然断电或硬盘只读后在看机会出现报错,开机到不了登录界面,而是来到一个提示: Give root password for maintenance(or type Control-d t ...
- mysq 数据库基本管理
命令表: 1.设置mysql数据库密码 mysqladmin -u root password 'new-password' 'new-password'为数据库密码. 2.登陆mysql数据库 my ...
- 43-python-自己的词典
可以用python实现一个自己的词典, 就是在网上下一个英汉词典,作为自己的词库,然后整理出一个json文件,存起来,查词时,直接读取查询: 处理时可以用正则表达式处理: https://www.cn ...
- windows下 Memcache cpu占用过高
分析应该是memcache的内存大小还是默认配置,已经满足不了当前的大数据量的需要了,大量的新缓存需要进入,同时大量的旧缓存又需要被淘汰出来,一进一出导致CPU占用过多. 进入注册表,找到:HKEY_ ...
- 关于bootstrap的认识
学习一个框架最好的方法当然就是去它的官网查看它的官方文档,看看官网是怎么描述这个框架的吧------Sleek, intuitive, and powerful front-end framework ...
- 在windows系统下安装oracle 11g
oracle 11g 安装在windows server 2012 系统下. 最近,需要配置数据库,要求在windows操作系统下,安装oracle 11g 数据库,因为以前没有安装过,所以成功后, ...
- 并发编程(三)Promise, Future 和 Callback
并发编程(三)Promise, Future 和 Callback 异步操作的有两个经典接口:Future 和 Promise,其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这 ...
- 彻底关闭win10的自动更新,一定要坚持看到最后一页
https://jingyan.baidu.com/article/9faa7231e7b78b473c28cbb6.html 是否好使我还在测试,不好使的话,再跟新 2018-05-20 今天电脑又 ...
- An integration of deep learning and neuroscience
Recently, I have read a paper about the integration of deep learing and neuroscience, which elaborat ...
- Quartz教程三:Job与JobDetail介绍
Quartz教程三:Job与JobDetail介绍 原文链接 | 译文链接 | 翻译:nkcoder | 校对: 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感 ...