这里用到第三方库Microsoft.Office.Interop.Excel,添加该引用后,鼠标右键该引用查看属性,将嵌入互操作类型true改为fase,电脑上需要下载office2013或者更高版本

private void btnliving_Click(object sender, EventArgs e){DataTabletoExcel1(dt, DateTime.Now.Ticks + ".xlsx");}public void DataTabletoExcel1(System.Data.DataTable tmpDataTable, string strFileName){///先得到datatable的行数int rowNum = tmpDataTable.Rows.Count;///列数int columnNum = tmpDataTable.Columns.Count;///声明一个应用程序类实例Application xlApp = new ApplicationClass();//xlApp.DefaultFilePath = "";  ///默认文件路径,将其设置路径后发现没什么变化。导出excel的路径还是在参数strFileName里设置//xlApp.DisplayAlerts = true;//xlApp.SheetsInNewWorkbook = 1;///返回或设置 Microsoft Excel 自动插入到新工作簿中的工作表数目。Long 类型,可读写。设置为2之后没发现什么区别//创建一个新工作簿Workbook xlBook = xlApp.Workbooks.Add();///在工作簿中得到sheet。_Worksheet oSheet = (_Worksheet)xlBook.Worksheets[1];#region 绘制列///自定义方法,想sheet中绘制列RangeBuild(oSheet, "A1", "M1", "xxxxxx报表", true);RangeBuild(oSheet, "A2", "A3", "序号", true);RangeBuild(oSheet, "B2", "B3", "日期", false);RangeBuild(oSheet, "C2", "E2", "二维表头", true);RangeBuild(oSheet, "C3", "C3", "二维表头", true);RangeBuild(oSheet, "D3", "D3", "二维表头", true);RangeBuild(oSheet, "E3", "E3", "二维表头", true);RangeBuild(oSheet, "F2", "F2", "二维表头", true);RangeBuild(oSheet, "F3", "F3", "二维表头", true);RangeBuild(oSheet, "G2", "G2", "二维表头", true);RangeBuild(oSheet, "G3", "G3", "二维表头", true);RangeBuild(oSheet, "H2", "J2", "二维表头", true);RangeBuild(oSheet, "H3", "H3", "二维表头", true);RangeBuild(oSheet, "I3", "I3", "二维表头", true);RangeBuild(oSheet, "J3", "J3", "二维表头", true);RangeBuild(oSheet, "K2", "M2", "二维表头", true);RangeBuild(oSheet, "K3", "K3", "二维表头", true);RangeBuild(oSheet, "L3", "L3", "二维表头", true);RangeBuild(oSheet, "M3", "M3", "二维表头", true);#endregion//将DataTable中的数据导入Excel中for (int i = 0; i < rowNum; i++){for (int j = 0; j < columnNum; j++){///excel中的列是从1开始的xlApp.Cells[i + 4, j + 1] = tmpDataTable.Rows[i][j].ToString();}}///保存,路径一块穿进去。否则回到一个很奇妙的地方,貌似是system32里 temp下....SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = "xlsx|*.xlsx";sfd.FileName = "xxxxxx报表" + DateTime.Now.ToString("yyyyMMddHHmmss");if (sfd.ShowDialog() == DialogResult.OK){oSheet.SaveAs(sfd.FileName);}else{return;}Process.Start(sfd.FileName);}private static void RangeBuild(_Worksheet oSheet, string startcell, string endcell, string value, bool isAutoWidth){///创建一个区域对象。第一个参数是开始格子号,第二个参数是终止格子号。比如选中A1——D3这个区域。Range range = (Range)oSheet.get_Range(startcell, endcell);///合并方法,0的时候直接合并为一个单元格range.Merge(0);///合并单元格之后,设置其中的文本range.Value = value;//横向居中range.HorizontalAlignment = XlVAlign.xlVAlignCenter;///字体大小range.Font.Size = 10;///字体range.Font.Name = "黑体";///行高range.RowHeight = 24;if (isAutoWidth){//自动调整列宽range.EntireColumn.AutoFit();}else{range.ColumnWidth = 20;}//填充颜色range.Interior.ColorIndex = 20;//设置单元格边框的粗细range.Cells.Borders.LineStyle = 1;}

C# 生成带二维表头的Excel表相关推荐

  1. 前端Vue H5生成带二维码的分享海报,实现长按保存到手机相册

    前端Vue H5生成带二维码的分享海报,实现长按保存到手机相册 前言:关于H5分享海报的需求,经常会遇到,通常就是一个分享的二维码+分享文案,生成一张图片,供用户在手机上长按保存到手机,然后就可以将保 ...

  2. thinkphp生成带二维码的海报

    阿里云搞活动,想要抓紧买 用thinkphp生成带二维码的海报功能. 准备:公众号二维码图片一张 背景图片一张 将二维码和背景图片合成的方法,可添加到common/common/function.ph ...

  3. PHP生成带二维码的分享图片

    综述 项目开发中需求,要求在APP中进行分享的时候可以分享图片,图片由美工进行设计,其上带有二维码,分享给别人可以直接长按图片进行识别.这种方式在分享中用户体验更好,首先图片由美工设计很好看,其次这种 ...

  4. 怎么用python生成带二维码的照片_怎么制作二维码图片-Python 生成个性二维码

    一.实验介绍1.1 实验内容 本课程通过调用MyQR接口来实现生成个人所需二维码,并可以设置二维码的大小.是否在现有图片的基础上生成.是否生成动态二维码. 1.2 知识点 Python3基础 MyQR ...

  5. js 通过canvas生成带二维码的海报图

    前言 h5移动端生成海报图,可长按图片保存或发送给朋友,或长按识别二维码.两种场景:第一种是生成项目分享海报图,通过背景图和地址生成的二维码合成一张海报图:第二种是通过页面生成商品海报图,页面有产品介 ...

  6. jquery.qrcode生成带logo的二维码,同时生成带二维码的好友分享图片(js与canvas实现二维码和图片合成的海报)

    首先给大家看一下效果图(纯jQuery前端技术): 提供一下demo 源代码和jquery.qrcode文件下载: https://download.csdn.net/download/qq15577 ...

  7. Vue - H5 生成带二维码和文案的宣传海报(可自定义二维码扫描后的内容、海报背景图、文案文字、宽高间距等)用 HTML 写可 DIY 的海报,做完后转为图片供用户保存和转发下载

    前言 这种需求常见于内容分享时,需要自动生成海报(图片)供用户保存或截图转发,网上的大部分教程都太乱且有 BUG. 本文将带您从 0-1 一路复制,完成一个兼容性好.健壮.注释详细的示例, 开箱即用, ...

  8. tp3.2生成带二维码的海报

    public function haibaoOld()     {         $id   = I( 'get.id' );         $type = I( 'get.type' );   ...

  9. thinkphp 添加图片 文字 水印生成带二维码的小程序推广海报

    $image = new \Think\Image();                 $bgm='./Public/haibao.png'; //背景图                 $post ...

最新文章

  1. python朴素贝叶斯回归预测的结果全是1_python – 朴素贝叶斯概率总是1
  2. linux内核用什么调试,什么是开发/调试Linux内核最有效和最优雅的方式
  3. MIT黑科技:全新芯片将语音识别功耗降低99%
  4. python实现阿里云域名绑定动态IP
  5. 将war包发布到测试服的常用命令
  6. python_数据库连接之mysql
  7. 迁移聊天记录到Teams
  8. deepnode处理过的图片_教你用PS快速修复图片脏乱和瑕疵,快来一起学习吧!
  9. wscript.exe无法打开vbs_如何恶搞朋友的电脑?超简单的vbs代码
  10. allow_pickle什么意思_如何修复草图算法中“当allow_pickle=False时无法加载对象数组”...
  11. 许家印砸1000亿布局AI、量子计算等领域,但在科技圈只能算轻壕
  12. 网上十大经典黑客软件大曝光(转)
  13. Python常用中文分词库:jieba
  14. linux硬盘修复软件,DiskGenius下载-硬盘修复软件(DiskGenius)官方版下载[电脑版]-PC下载网...
  15. JAVA游戏引擎!FXGL 教程 总目录
  16. 跑步用挂脖耳机好还是无线耳机、公认最好的跑步耳机推荐
  17. 7-2 查询水果价格 (15 分)
  18. 【论文阅读】Dense Passage Retrieval for Open-Domain Question Answering
  19. CXL漫谈--为什么需要CXL
  20. 善领电子狗 计算机无法识别,[已解决]如何修复USB设备无法轻松识别

热门文章

  1. 关于前端接口报错500原因
  2. H5+CSS3+JS/JQ 实现京东首页
  3. 笔记之零基础入门金融风控-贷款违约预测
  4. html的详情页面设计,HTML5+CSS3网页设计与制作实用教程 单元7 网页特效与制作商品详情页面(105页)-原创力文档...
  5. ios根据服务器修改App名称,iOS 修改APP 名称
  6. gitee搭建个人博客教程
  7. Tomcat与JDK版本对应关系,Tomcat各版本特性
  8. JS高级 之 RegExp - 正则表达式
  9. 赵小楼《天道》《遥远的救世主》深度解析(135)观念,传统观念,传统观念有没有用取决于观念,而不在传统
  10. php thinkphp 设置session的有效时间