C# 写Excel

上一篇介绍了读Excel:读Excel

本节介绍写Excel:
写Excel比读Excel的学问要多很多,主要是关于字体,保存的格式,颜色等等的设置部分。
首先上代码:

/// <summary>/// 将数组数据导出到Excel文件一个Sheet中/// </summary>/// <param name="s">                数据</param>/// <param name="file_path">        文件完整路径</param>/// <param name="sheet_name">       Sheet命名</param>/// <returns>true 成功  false 失败</returns>  public bool Array_To_Excel(string[,] s, string file_path, string sheet_name = "Sheet1"){bool bxls = false;ISheet sheet = null;XSSFWorkbook xssfworkbook = null;HSSFWorkbook hssfworkbook = null;HSSFCellStyle cell_Style = null;string[] temp = file_path.Split('.');if (temp[temp.Count() - 1].Equals("xlsx"))              // 2007版本  {xssfworkbook = new XSSFWorkbook();sheet = xssfworkbook.CreateSheet(sheet_name);}else if (temp[temp.Count() - 1].Equals("xls"))          // 2003版本 {bxls = true;hssfworkbook = new HSSFWorkbook();sheet = hssfworkbook.CreateSheet(sheet_name);//设置单元格格式cell_Style = (HSSFCellStyle)hssfworkbook.CreateCellStyle();                 //定义一个单元格样式 //设置单元格背景色 cell_Style.FillForegroundColor = HSSFColor.COLOR_NORMAL;                    //取其它颜色:HSSFColor.Red.Index;cell_Style.FillPattern = FillPattern.SolidForeground;//设置文字对齐方式 cell_Style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;        //水平居中 cell_Style.VerticalAlignment = VerticalAlignment.Center;                    //垂直居中 //设置字体格式开始 HSSFFont hssf_font = (HSSFFont)hssfworkbook.CreateFont();//设置字体的颜色为自定义颜色 HSSFPalette palette = hssfworkbook.GetCustomPalette();palette.SetColorAtIndex(HSSFColor.Lime.Index, (byte)0, (byte)0, (byte)0);   //RGB颜色值 hssf_font.Color = HSSFColor.Lime.Index;//字体属性 hssf_font.FontName = "微软雅黑";hssf_font.FontHeightInPoints = 10;                                          //设置字体大小 //hssf_font.IsBold = true;cell_Style.SetFont(hssf_font);                                              //设置cellStyle 样式的字体 IDataFormat dataFormat = hssfworkbook.CreateDataFormat();                   //设置单元格格式cell_Style.DataFormat = dataFormat.GetFormat("@");//边框 cell_Style.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;               //None 无边框     Thin 细线  Thick 粗线   cell_Style.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;                 //Hair Dotted Dashed Medium 点状线cell_Style.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;                //SlantedDashDot MediumDashDotDot DashDotDot MediumDashDot DashDot MediumDashed虚线cell_Style.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;                  //Double双细线   }else{Trace("file format error,not excel file");return false;}try{float output = 0.0f;IRow row = sheet.CreateRow(0);for (int i = 0; i < s.GetLength(1); i++)          //表头{ICell cell = row.CreateCell(i);//cell.SetCellValue(s[0,i]);if (float.TryParse(s[0, i], out output))cell.SetCellValue(Convert.ToDouble(output.ToString("0.00")));//输出数字elsecell.SetCellValue(s[0, i]);if (bxls)cell.CellStyle = cell_Style;}for (int i = 1; i < s.GetLength(0); i++)             //数据{IRow row1 = sheet.CreateRow(i);for (int j = 0; j < s.GetLength(1); j++){ICell cell = row1.CreateCell(j);if (float.TryParse(s[i, j], out output))cell.SetCellValue(Convert.ToDouble(output.ToString("0.00")));//输出数字elsecell.SetCellValue(s[i, j]);if (bxls)cell.CellStyle = cell_Style;}}MemoryStream stream = new MemoryStream();                   //转为byte(buf变量)数组if (temp[temp.Count() - 1].Equals("xlsx"))xssfworkbook.Write(stream);elsehssfworkbook.Write(stream);var buf = stream.ToArray();using (FileStream fs = new FileStream(file_path, FileMode.Create, FileAccess.Write))        //保存为Excel文件{fs.Write(buf, 0, buf.Length);fs.Flush();}}catch (Exception e){Trace(e.Message);return false;}return true;}private void button_写_Click(object sender, EventArgs e){DataTable dt = Excel_To_DataTable("D:\\test.xlsx");string[,] content = DataTable_To_Array(dt);Array_To_Excel(content, "D://test1.xlsx", "test");}

从上图可以看出,输出的Excel中字体都是垂直置中,具体格式大家根据自己的需求再进行修改!

C# Excel操作之读,写,追加相关推荐

  1. PYTHON文件操作(读/写文件)

    模板先行,介绍在后面 with open("ce.txt",encoding='utf-8') as file:# text = file.read()while True:#获取 ...

  2. python与excel做数据可视化-Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...

  3. jxl操作(读、写)Excel例子 http://www.360doc.com/content/11/0422/14/6728052_111517688.shtml

      首 页 阅览室 馆友 我的图书馆 登录 注册 jxl操作(读.写)Excel例子 收藏人:澈丹 2011-04-22 | 阅:  转:  |  分享  |     来源     jxl不错,简单易 ...

  4. 杭电Matlab与仿真-MATLAB基本语法(二)-数据文件的读/写操作

    数据文件的读/写操作 实验目的 实验内容与要求 实验程序与结果 实验目的 学会matlab数据输入与输出基本操作: 熟悉matlab各种文件的输入输出方法,了解常用的图片及音频文件的输入输出: 掌握用 ...

  5. day9 python学习 文件的操作 读 写 seek

    文件的操作 1   文件的打开操作: 文件句柄 = open('文件路径', '模式') f=open('wangyakun','a+',encoding='utf-8') #文件名, 如果是绝对路径 ...

  6. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )

    文章目录 一.追加键值对数据 二.更新键值对数据 三.完整代码示例 一.追加键值对数据 在上一篇博客 [C 语言]文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取 ...

  7. Intel Core Enhanced Core架构/微架构/流水线 (11) - 高速缓存读/写操作 Cache Load/Store

    Loads and Stores Intel Core微架构在每个周期可以同时执行最多1条128位读存操作和1条128位写存操作,这两条操作需要访问不同的存储器地址.Core微架构的乱序访存操作允许与 ...

  8. 蟒周刊-400-无依赖项的轻量级Excel读/写器

    原文: PyCoder's Weekly - Issue #400 191225 Zoom.Quiet(大妈) 用时 42 分钟 完成快译 191225 Zoom.Quiet(大妈) 用时 17 分钟 ...

  9. 文本文件 java_简单的用java实现读/写文本文件的示例

    简单的用java实现读/写文本文件的示例 更新时间:2008年07月26日 13:09:26   作者: 同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流) 三个例子可以独立存在,所以根据 ...

最新文章

  1. C# 加密解密(DES,3DES,MD5,Base64) 类
  2. 【大话Hibernate】hibernate事务管理
  3. vue数组刷新_Vue中数组更新后,页面没有动态刷新问题
  4. 20K~50K/月,上海随芯科技 算法 招聘:3D机器视觉、DSP、语音识别
  5. php实现笔记共享,[转载]利用memcached在多台服务器之间共享PHP的session数据
  6. 做箭步蹲的时候身体总是保持不了平衡,动作要领是什么?
  7. FutureTask源码分析
  8. java jave1.0.2_GitHub - dadiyang/jave at v1.0.2
  9. 计算机链接与rtu通讯的区别,RTU
  10. Finished, saving caches
  11. iphone个系列尺寸_iPhone所有机型对比尺寸
  12. SpringBoot Elasticsearch工具类封装
  13. 最新二开版本的源码博客论坛源码,UI很漂亮。
  14. 阅读:IA-GCN: Interactive Graph Convolutional Network forRecommendation
  15. bert实践:关系抽取解读
  16. 零基础搭建获利的外卖cps平台公众号
  17. 生产环境nginx集群高可用方案
  18. Java 生成微信扫描的二维码,跳转到指定网址,图片增加二维码及文字水印
  19. 那些大学熬过异地恋的人后来怎样了?
  20. 关于少量数据的多分类问题

热门文章

  1. 基于SSM实现高校教材管理系统
  2. Git 常用指令记录
  3. python 中的numpy_Python中numpy的应用
  4. MT6755原理图,MT6755数据表分析下载
  5. 腾讯云iis8.5新建网站无法访问_如何建立自己的网站(零基础小白教程一)
  6. window.onload和window.document.readystate的探究
  7. 多谢您―skycc群发软件
  8. gloo pytorch_使用Solo Gloo等微服务/ API网关公开在AWS EKS中运行的微服务
  9. Vue新建项目与npm使用.
  10. OSChina 周五乱弹 ——论HR的日常心塞