COM 自动化控制Excel应用程序
class Program
{
static void Main(string[] args)
{
var dt = new System.Data.DataTable(); dt.Columns.Add("#"); dt.Columns.Add("Expiration Date"); dt.Columns.Add("Remark"); DataRow dr = dt.NewRow(); dr[] = ;
dr[] = "23/9/2015";
dr[] = "For H&M (Shanghai DC) use. H&M is using EPV and it does not have license control function, this license file is for record only. "; dt.Rows.Add(dr); dr = dt.NewRow(); dr[] = ;
dr[] = "23/12/2015";
dr[] = "For SZ SI internal testing. "; dt.Rows.Add(dr); ExportToExcel(dt);
} /// <summary>
/// 导出Excel
/// </summary>
/// <param name="dt">要导出的DataTable</param>
private static void ExportToExcel(System.Data.DataTable dt)
{
if (dt == null) return;
var xlApp = new Application();
xlApp.Visible = true; var workBook = xlApp.Workbooks.Add(Type.Missing);
//从1开始
Worksheet workSheet = workBook.Sheets[];
Range range; //写入标题
for (int i = ; i < dt.Columns.Count; i++)
{
workSheet.Cells[, i + ] = dt.Columns[i].ColumnName;
range = (Range)workSheet.Cells[, i + ];
range.Interior.ColorIndex = ;//背景颜色
range.Font.ColorIndex = ;
range.HorizontalAlignment = XlHAlign.xlHAlignCenter;//居中
//加边框
range.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, null);
range.EntireColumn.ColumnWidth = ;
range.EntireRow.AutoFit();//自动调整行高
}
//写入内容
for (int r = ; r < dt.Rows.Count; r++)
{
for (int i = ; i < dt.Columns.Count; i++)
{
workSheet.Cells[r + , i + ] = dt.Rows[r][i];
range = (Range)workSheet.Cells[r + , i + ];
range.Font.Size = ;//字体大小
range.HorizontalAlignment = XlHAlign.xlHAlignCenter;//居中
range.VerticalAlignment = XlHAlign.xlHAlignCenter;
//加边框
range.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexAutomatic, null);
range.EntireRow.AutoFit();//自动调整行高
range.WrapText = true;
if (i == dt.Columns.Count - )
{
range.HorizontalAlignment = XlHAlign.xlHAlignLeft;
}
}
}
} }
COM 自动化控制Excel应用程序的更多相关文章
- WIN7中组件服务中的DCOM配置找不到Microsoft Excel应用程序的解决办法
转自:http://blog.csdn.net/lploveme/article/details/8215265 在运行栏中输入命令:dcomcnfg,打开组件服务管理窗口,但是却发现找不到Micro ...
- 利用BeEF REST API自动化控制僵尸主机
本文首发Freebuf,属于原创奖励计划,未经许可禁止转载. http://www.freebuf.com/articles/network/137662.html 一. 前言 关于BeEF,不再多介 ...
- 用Delphi将数据导入到Excel并控制Excel
一.调用Excel的方法:一般情况下有两种方法调用Excel:1. 直接使用Delphi自带的组件:在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWo ...
- windows 2008 R2 64位系统,找到Microsoft Excel 应用程序
在windows 2003 操作系统中, 1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务", 2.依次双击& ...
- 使用events.EventEmitter 控制Node.js 程序执行流程
使用events.EventEmitter 控制Node.js 程序执行流程 标题写的可能也不太对,大家领会精神: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. ...
- 1.VBA 基本概念——《Excel VBA 程序开发自学宝典》
1.1 常见对象及含义 对象名 含义 application 整个Excel应用程序 window 窗口 worksheet 一个工作表 sheets 指定工作簿的所有工作表的合集 shaperan ...
- 使用Appium-Desktop捕获APP元素控件实现自动化控制
使用Appium捕获APP的元素控件 实现自动化控制 我是用的是华为P20手机进行测试,为了映射出它的adb端口,需再去官网下载安装一个华为手机助手,然后将手机调成开发者模式,连接时选择传输文件模式. ...
- VFP控制Excel操作集
◆访问EXCEL:ExcelSheet = GetObject('','Excel.Sheet')返回结果为类,则成功.例:ExcelSheet = GetObject('','Excel.Sheet ...
- Python_Selenium之浏览器封装_去掉浏览器受到自动化控制横条显示及去掉是否记住密码弹窗
封装如下: from selenium import webdriverfrom common.config_utils import configfrom selenium.webdriver.ch ...
随机推荐
- 转载:C语言指针使用的注意事项
相信大家对指针的用法已经很熟了,这里也不多说些定义性的东西了,只说一下指针使用中的注意事项吧. 一.在定义指针的时候注意连续声明多个指针时容易犯的错误,例如int * a,b;这种声明是声明了一个指向 ...
- 安装Flutter环境
mac 环境安装 系统需求 操作系统: macOS (64-bit) 硬盘: 700 MB 工具: bash, mkdir, rm, git, curl, unzip, which 环境安装 SDK ...
- Android Studio 引入 Git 并提交代码
File -> Settings -> Version Control -> Git -> Path to Git executable -> 选择本地 Git 可执行文 ...
- InnoDB锁冲突案例演示(续)
Preface I've demontstrated several InnoDB locking cases in my previous blog.I'm gonna do the ...
- 「日常温习」Hungary算法解决二分图相关问题
前言 二分图的重点在于建模.以下的题目大家可以清晰的看出来这一点.代码相似度很高,但是思路基本上是各不相同. 题目 HDU 1179 Ollivanders: Makers of Fine Wands ...
- ionic ios样式偏移解决方案。
在css属性内增加: .item-ios [item-end] { //解决ios系统上尾部图标出现重影而增加的格式. margin: 0px -15.3px 0px 0px; margin-bott ...
- 【转载】appium 操作汇总
'''.appium api第二弹 锋利的python,这是初稿,2015/1/5 如有错误的地方,请同学们进行留言,我会及时予以修改,尽量整合一份ok的api 作者:Mads Spiral QQ:7 ...
- Leetcode - 461. Hamming Distance n&=(n-1) (C++)
1. 题目链接:https://leetcode.com/problems/hamming-distance/description/ 2.思路 常规做法做完看到评论区一个非常有意思的做法.用了n&a ...
- protected、public、private
一.protected成员 1. 受保护的成员的可访问性 对于一个类的protected成员,①该类的用户(如类对象)不能访问它,②该类的派生类的成员(及其友元)可以访问它. 派生类的成员及其友元不能 ...
- 如何理解*p++
后置递增运算符的优先级高于解引用运算符! *p++ 等价于 *(p++) 但是,我们*p++的求值结果不可理解为p+1指向的对象的值,而应该是p指向的对象的值. 这是由于后置++的特性引起的. *p+ ...