C# Excel操作之读,写,追加
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操作之读,写,追加相关推荐
- PYTHON文件操作(读/写文件)
模板先行,介绍在后面 with open("ce.txt",encoding='utf-8') as file:# text = file.read()while True:#获取 ...
- python与excel做数据可视化-Python的Excel操作及数据可视化
Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...
- jxl操作(读、写)Excel例子 http://www.360doc.com/content/11/0422/14/6728052_111517688.shtml
首 页 阅览室 馆友 我的图书馆 登录 注册 jxl操作(读.写)Excel例子 收藏人:澈丹 2011-04-22 | 阅: 转: | 分享 | 来源 jxl不错,简单易 ...
- 杭电Matlab与仿真-MATLAB基本语法(二)-数据文件的读/写操作
数据文件的读/写操作 实验目的 实验内容与要求 实验程序与结果 实验目的 学会matlab数据输入与输出基本操作: 熟悉matlab各种文件的输入输出方法,了解常用的图片及音频文件的输入输出: 掌握用 ...
- day9 python学习 文件的操作 读 写 seek
文件的操作 1 文件的打开操作: 文件句柄 = open('文件路径', '模式') f=open('wangyakun','a+',encoding='utf-8') #文件名, 如果是绝对路径 ...
- 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )
文章目录 一.追加键值对数据 二.更新键值对数据 三.完整代码示例 一.追加键值对数据 在上一篇博客 [C 语言]文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取 ...
- Intel Core Enhanced Core架构/微架构/流水线 (11) - 高速缓存读/写操作 Cache Load/Store
Loads and Stores Intel Core微架构在每个周期可以同时执行最多1条128位读存操作和1条128位写存操作,这两条操作需要访问不同的存储器地址.Core微架构的乱序访存操作允许与 ...
- 蟒周刊-400-无依赖项的轻量级Excel读/写器
原文: PyCoder's Weekly - Issue #400 191225 Zoom.Quiet(大妈) 用时 42 分钟 完成快译 191225 Zoom.Quiet(大妈) 用时 17 分钟 ...
- 文本文件 java_简单的用java实现读/写文本文件的示例
简单的用java实现读/写文本文件的示例 更新时间:2008年07月26日 13:09:26 作者: 同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流) 三个例子可以独立存在,所以根据 ...
最新文章
- C# 加密解密(DES,3DES,MD5,Base64) 类
- 【大话Hibernate】hibernate事务管理
- vue数组刷新_Vue中数组更新后,页面没有动态刷新问题
- 20K~50K/月,上海随芯科技 算法 招聘:3D机器视觉、DSP、语音识别
- php实现笔记共享,[转载]利用memcached在多台服务器之间共享PHP的session数据
- 做箭步蹲的时候身体总是保持不了平衡,动作要领是什么?
- FutureTask源码分析
- java jave1.0.2_GitHub - dadiyang/jave at v1.0.2
- 计算机链接与rtu通讯的区别,RTU
- Finished, saving caches
- iphone个系列尺寸_iPhone所有机型对比尺寸
- SpringBoot Elasticsearch工具类封装
- 最新二开版本的源码博客论坛源码,UI很漂亮。
- 阅读:IA-GCN: Interactive Graph Convolutional Network forRecommendation
- bert实践:关系抽取解读
- 零基础搭建获利的外卖cps平台公众号
- 生产环境nginx集群高可用方案
- Java 生成微信扫描的二维码,跳转到指定网址,图片增加二维码及文字水印
- 那些大学熬过异地恋的人后来怎样了?
- 关于少量数据的多分类问题
热门文章
- 基于SSM实现高校教材管理系统
- Git 常用指令记录
- python 中的numpy_Python中numpy的应用
- MT6755原理图,MT6755数据表分析下载
- 腾讯云iis8.5新建网站无法访问_如何建立自己的网站(零基础小白教程一)
- window.onload和window.document.readystate的探究
- 多谢您―skycc群发软件
- gloo pytorch_使用Solo Gloo等微服务/ API网关公开在AWS EKS中运行的微服务
- Vue新建项目与npm使用.
- OSChina 周五乱弹 ——论HR的日常心塞