文档章节

C# 操作excel

可达鸭眉头一皱
 可达鸭眉头一皱
发布于 2016/04/08 16:04
字数 575
阅读 26
收藏 4
private void ExcelOperation()
{
     //
     //定义一个缺少的object对象          
     object oMis = System.Reflection.Missing.Value;
  
     //
     //定义一个Excel程序对象          
     Excel.ApplicationClass excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
  
     //
     //由Execl程序创建一个工作薄对象          
     Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
  
     //
     //由工作薄对象创建一个工作表          
     Excel.Worksheet excelWorkSheet = (Excel.Worksheet)excelWorkBook.Worksheets.Add(oMis, oMis, 1, oMis);
  
     //
     //设置工作的表的名字          
     excelWorkSheet.Name = "测试项目" ;
  
     //
     //定义一个Excel区域对象,用于保存选择的区域
     Excel.Range selectRange;
  
     //
     //设置第1行第1列的值
     ((Excel.Range)excelWorkSheet.Cells[1, 1]).set_Item(1, 1, "日期" );
  
     //
     //设置第1行第2列的值
     ((Excel.Range)excelWorkSheet.Cells[1, 1]).set_Item(1, 2, "时间" );
  
     //
     //选择第2行第2列至第2行第2列,设置值与格式
     selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 2], excelWorkSheet.Cells[2, 2]);
     selectRange.set_Item(1, 1, "11:30" );
     selectRange.NumberFormatLocal = @"h:mm;@" ;
    
     //
     //选择第3行第2列至第2行第2列,设置值与格式
     selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[3, 2], excelWorkSheet.Cells[3, 2]);
     selectRange.set_Item(1, 1, "12:30" );
     selectRange.NumberFormatLocal = @"h:mm;@" ;
  
     //
     //选择第4行第2列至第2行第2列,设置值与格式
     selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[4, 2], excelWorkSheet.Cells[4, 2]);
     selectRange.set_Item(1, 1, "13:30" );
     selectRange.NumberFormatLocal = @"h:mm;@" ;
  
     //
     //选择第5行第2列至第2行第2列,设置值与格式
     selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[5, 2], excelWorkSheet.Cells[5, 2]);
     selectRange.set_Item(1, 1, "14:30" );
     selectRange.NumberFormatLocal = @"h:mm;@" ;
  
     //
     //选择第6行第2列至第2行第2列,设置值与格式
     selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[6, 2], excelWorkSheet.Cells[6, 2]);
     selectRange.set_Item(1, 1, "15:30" );
     selectRange.NumberFormatLocal = @"h:mm;@" ;
  
     //
     //选择第2行第1列至第2行第1列,
     selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 1], excelWorkSheet.Cells[2, 1]);
     //
     //选择是必须的,因设置了选择区域后并未选中此区域
     selectRange.Select();
    
     //
     //冻结窗体
     excelApp.ActiveWindow.FreezePanes = true ;
  
     //
     //选择第2行第1列至第6行第1列,
     selectRange = excelWorkSheet.get_Range(excelWorkSheet.Cells[2, 1], excelWorkSheet.Cells[6, 1]);          
    
     //
     //合并单元格
     selectRange.Merge(oMis);
  
     selectRange.EntireColumn.AutoFit(); //全部列自适应宽度
     selectRange.EntireRow.AutoFit();    //全部行自适应高度
  
     selectRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; //水平居中
     selectRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter; //垂直居中
  
     //
     //设置单元格的格式
     selectRange.NumberFormatLocal = @"yyyy-m-d;@" ;
     /*
         NumberFormatLocal = "¥#,##0.00_);[红色](¥#,##0.00)"   //货币     
         NumberFormatLocal = "0.00%"                             //百分比
         NumberFormatLocal = "# ??/??"                           //分数
      * */
  
     //
     //设置单元格的值
     selectRange.set_Item(1, 1, "2007-02-27" );
  
     //selectRange.ColumnWidth = 50;   //固定宽度
     selectRange.Columns.AutoFit();    //自适应宽度
  
     selectRange.Borders.LineStyle = BorderStyle.FixedSingle;      //设置边框样式
     selectRange.Borders.Weight = Excel.XlBorderWeight.xlThin;     //边框粗细
     selectRange.Borders.ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;    //颜色          
 
     excelWorkBook.Saved = true ;     //将工作薄的保存标志置为True
  
     //捕捉异常,以防止文件为只读或已打开,保存时会出错
     try
     {
         excelWorkBook.SaveCopyAs( @"d:/aa.xls" );
     }
     catch (Exception exp)
     {
         MessageBox.Show(exp.Message);
     }
  
     //Excel程序退出,注意:要在外面释放内存资源
     excelApp.Quit();
}


© 著作权归作者所有

可达鸭眉头一皱
粉丝 4
博文 88
码字总数 36666
作品 0
广州
私信 提问
C# 读取Excel,一波华丽的操作

C# 读取Excel,其实有很多方法。但是今天要来一波华丽的操作。 先看效果: 以上这波操作使用了 ExcelDataReader 和 ExcelDataReader.DataSet 完成的。 ExcelDataReader 是一个快速读取 Exce...

碧水青荷
2018/10/20
0
0
C# 调用NPOI 修改Excel 完成实时更新公式结果

C# 调用NPOI,修改EXCEL中的数据后并保存后,不会对公式进行更新操作。打开Excel表需要更新一下公式才生效 强制更新公式:C# 调用sheet.ForceFormulaRecalculation = true; 保存文件。打开E...

vv2013
2018/08/22
0
0
Excel、Exchange和C#

摘要:Eric Gunnerson 将向您介绍如何使用 Outlook、Excel 和 C# 创建自定义的日历,该日历可以提供适用于短期项目和长期项目的清晰明了的版式。 下载 csharp05152003_sample.exe 示例文件(...

晨曦之光
2012/03/09
232
0
C# 操作Excel数据透视表

一、概述 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行号、列标和页字段。当改变版面布置时,数据透视表也...

E_iceblue
2018/04/04
0
0
C# 插入、删除Excel分页符

概述 对Excel表格设置分页对我们预览、打印文档时是很方便的,特别是一些包含很多复杂数据的、不规则的表格,为保证打印时每一页的排版美观性或者数据的前后连接的完整性,此时的分页符就发挥...

E_iceblue
2018/05/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部