代码里的地址我就不删除了,这是我亲戚的汽配店,各位看到的亲们还希望有机会的话多去光顾一下啊!刚起步阶段,有点艰难。

public void DataTabletoExcel(int Id)
        {
            OrderModel order = BLL.GetModel(Id);
            if (order == null)
            { return; }
            ///先得到行数
            int rowNum = order.SubList.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中绘制列
            RangeTitle(oSheet, "A1", "E1", "**@@**");
            //第二行
            RangeBuild(oSheet, "A2", "A2", "收款人:" + order.Creator);
            RangeBuild(oSheet, "B2", "C2", "订单号:" + order.OrderCode);
            RangeBuild(oSheet, "D2", "E2", "日期:"+ order.CreateTime);

//商品行
            RangeBuild(oSheet, "A3", "A3", "商品名称");
            RangeBuild(oSheet, "B3", "B3", "商品编码");
            RangeBuild(oSheet, "C3", "C3", "售价");
            RangeBuild(oSheet, "D3", "D3", "数量");
            RangeBuild(oSheet, "E3", "E3", "金额");

#endregion

for (int i = 0; i < rowNum; i++)
            {//下面注释掉的其实可以不调用单元格设置,如果的datatable用两个for循环会简单很多
                //xlApp.Cells[i + 4, 1] = order.SubList[i].ProductName;
                //xlApp.Cells[i + 4, 2] = order.SubList[i].ProductCode;
                //xlApp.Cells[i + 4, 3] = order.SubList[i].RealPrice;
                //xlApp.Cells[i + 4, 4] = order.SubList[i].QTY;
                //xlApp.Cells[i + 4, 5] = order.SubList[i].QTY * order.SubList[i].RealPrice;
                RangeFoot(oSheet, xlApp.Cells[i + 4, 1], xlApp.Cells[i + 4, 1], order.SubList[i].ProductName);
                RangeFoot(oSheet, xlApp.Cells[i + 4, 2], xlApp.Cells[i + 4, 2], order.SubList[i].ProductCode); 
                RangeFoot(oSheet, xlApp.Cells[i + 4, 3], xlApp.Cells[i + 4, 3], order.SubList[i].RealPrice.ToString());
                RangeFoot(oSheet, xlApp.Cells[i + 4, 4], xlApp.Cells[i + 4, 4], order.SubList[i].QTY.ToString());
                RangeFoot(oSheet, xlApp.Cells[i + 4, 5], xlApp.Cells[i + 4, 5], (order.SubList[i].QTY * order.SubList[i].RealPrice).ToString());
            }
            //xlApp.Cells[rowNum + 4, 1] = "合计:";
            //xlApp.Cells[rowNum + 4, 5] = order.NetAMT;
            RangeBuild(oSheet, xlApp.Cells[rowNum + 4, 1], xlApp.Cells[rowNum + 4, 1], "合计:");
            string value= NoToChinese(Convert.ToDecimal(order.NetAMT));
            RangeBuild(oSheet, xlApp.Cells[rowNum + 4, 2] ,xlApp.Cells[rowNum + 4, 4], value);
            RangeBuild(oSheet, xlApp.Cells[rowNum + 4, 5], xlApp.Cells[rowNum + 4, 5], order.NetAMT.ToString());

RangeFoot(oSheet, xlApp.Cells[rowNum + 5, 1], xlApp.Cells[rowNum + 5, 2], " 地址: 衡阳市石鼓区中亿汽贸城A区18栋113号");
            RangeFoot(oSheet, xlApp.Cells[rowNum + 5, 3], xlApp.Cells[rowNum + 5, 5], "联系电话: 0734-8163809/窦建波:14789301846");
            RangeFoot(oSheet, xlApp.Cells[rowNum + 6, 1], xlApp.Cells[rowNum + 6, 5], "主营类目:内饰加装(豪华座椅坐垫,脚垫,箱垫、一键启动、360度无缝记录仪、各种尺寸导航仪、手机支架、充电器等)");
            RangeFoot(oSheet, xlApp.Cells[rowNum + 7, 1], xlApp.Cells[rowNum + 7, 5], "汽车保养(火花塞、品牌润滑油、胎压监测、车衣、太阳膜等)车外装饰(疝气灯、LED灯、电动尾门、前后护栏挡泥板、车窗饰条等)");
            RangeFoot(oSheet, xlApp.Cells[rowNum + 8, 1], xlApp.Cells[rowNum + 8, 5], "汽车安全(防盗器、金点子原子锁、胎压监测等)"); 
            ///保存,路径一块穿进去。否则回到一个很奇妙的地方,貌似是system32里 temp下....

oSheet.SaveAs(@"E:\GithUP\DaZhuan\DaZhuanWeb\OrderExcel\" + order.OrderCode);
          // oSheet.SaveAs( path);
        }

private static void RangeBuild(_Worksheet oSheet, object startcell, object endcell, string value)
        {
            ///创建一个区域对象。第一个参数是开始格子号,第二个参数是终止格子号。比如选中A1——D3这个区域。
            Range range = (Range)oSheet.get_Range(startcell, endcell);
            ///合并方法,0的时候直接合并为一个单元格
            range.Merge(0);
            ///合并单元格之后,设置其中的文本
            range.Value = value;
            //横向居中
            range.HorizontalAlignment = XlVAlign.xlVAlignCenter;
            ///字体大小
            range.Font.Size = 12;
            ///字体
            range.Font.Name = "黑体";
            ///行高
            range.RowHeight = 14;
            //自动调整列宽
            range.EntireColumn.AutoFit();
            //填充颜色
            range.Interior.ColorIndex = 20;
            //设置单元格边框的粗细
            range.Cells.Borders.LineStyle = 1;
        }

private static void RangeFoot(_Worksheet oSheet, object startcell, object endcell, string value)
        {
            ///创建一个区域对象。第一个参数是开始格子号,第二个参数是终止格子号。比如选中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.EntireColumn.AutoFit();
            //填充颜色
            range.Interior.ColorIndex = 20;
            //设置单元格边框的粗细
            range.Cells.Borders.LineStyle = 1;
        }

private static void RangeTitle(_Worksheet oSheet, string startcell, string endcell, string value)
        {
            ///创建一个区域对象。第一个参数是开始格子号,第二个参数是终止格子号。比如选中A1——D3这个区域。
            Range range = (Range)oSheet.get_Range(startcell, endcell);
            ///合并方法,0的时候直接合并为一个单元格
            range.Merge(0);
            ///合并单元格之后,设置其中的文本
            range.Value = value;
            //横向居中
            range.HorizontalAlignment = XlVAlign.xlVAlignCenter;
            ///字体大小
            range.Font.Size = 24;
            ///字体
            range.Font.Name = "黑体";
            ///行高
            range.RowHeight = 32;
            //自动调整列宽
            range.EntireColumn.AutoFit();
            //填充颜色
            range.Interior.ColorIndex = 20;
            //设置单元格边框的粗细
            range.Cells.Borders.LineStyle = 1;
        }

C#导出带格式的Excel相关推荐

  1. Java导出带格式的Excel数据到Word表格

    在Word中创建报告时,我们经常会遇到这样的情况:我们需要将数据从Excel中复制和粘贴到Word中,这样读者就可以直接在Word中浏览数据,而不用打开Excel文档.在本文中,您将学习如何使用Spi ...

  2. 如何通过Java导出带格式的 Excel 数据到 Word 表格

    在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件.但是如果表格比较长,内容就会存在一定程度的丢失,无法 ...

  3. XLSX实现导出带样式的Excel表格的坑

    XLSX导出带样式的Excel表格失败 导入XLSX xlsx-style的使用 项目的要求,需要导出一个结果到Excel表格中,因为所以,没有用Java的方式去实现,而选择了Vue前端直接导出的方式 ...

  4. php 导出csv设置列宽度,php数据库导出excel表格数据-php从数据库导出csv格式的Excel表格是,字段本身就......

    PHP如何将查询出来的数据导出成excel表格(最好做... $objPHPExcel->getActiveSheet()->getDefaultColumnDimension(A)-&g ...

  5. .net开发时用NPOI导出xlsx格式的Excel时,打开导出的Excel遇到“部分内容有问题”的报错

    项目场景: 提示:这里简述项目相关背景: .NET 开发 C# 问题描述 用NPOI导出xlsx格式的Excel时,打开导出的Excel遇到"部分内容有问题"的报错 原因分析: 写 ...

  6. VUE Table复杂表格生成带格式的excel(多表头、合并单元格、边框、居中、背景)

    VUE Table复杂表格生成带格式的excel(多表头.合并单元格.边框.居中.背景) 因为工作需要,在网上找了很多都不太行无意之间看到一个大佬的打码拿过来改了改居然可以用! 原文链接:https: ...

  7. 导出带图片的Excel报表

    导出带图片的Excel报表 先引用 Microsoft.Office.Tools.Excel.v4.0.Utilities.dll程序集,然后在后台页面引用using Excel = Microsof ...

  8. python按某列拆分excel表格_python带格式拆分excel表单,copy库完美搞定

    python拆分excel表单,生成单独的excel文件,网上这方面的文章很多.但大多只讲主功能如何实现,让拆分后的表保持和原表单一致的格式,则鲜有人讲.本文通过调用copy库,完美实现带格式拆分表单 ...

  9. python拆分excel 样式不变_python带格式拆分excel表单,copy库完美搞定

    python拆分excel表单,生成单独的excel文件,网上这方面的文章很多.但大多只讲主功能如何实现,让拆分后的表保持和原表单一致的格式,则鲜有人讲.本文通过调用copy库,完美实现带格式拆分表单 ...

最新文章

  1. pytorch 神经网络训练注意最后一批次输出的数据体量
  2. GAN与NLP的讨论
  3. python绘制3d图-Python matplotlib绘图示例 - 绘制三维图形
  4. 机器人编程语言python-10大热门机器人编程语言,你掌握了哪种?
  5. Oracle中验证非空的函数NVL(),NVL2()总结
  6. android 屏保_Mac视频屏保随心换!
  7. 深度之眼课程打卡-统计学习方法01
  8. synchronized的基本语法
  9. 【渝粤题库】国家开放大学2021春1398分析化学(本)题目
  10. getLocationOnScreen不起作用原因
  11. 移动端禁止页面缩放问题
  12. 两个一样的图像相除会怎么样_【壮凌自动化分析】一种动力电池生产中基于图像运动模糊的速度检测方法...
  13. PCB 多层设计 实例视频教程 pretell99
  14. 顶会集结+深度解析:医疗+AI如此火爆,NLP如何赋能?
  15. 翻译:YOLOv5 新版本——改进与评估
  16. length()函数_奇怪的Haskell实验——length的实现是?
  17. 通过改变浏览器Cookie切换当前网站马甲
  18. 服务器lsass系统错误,Win7系统提示Lsass.exe系统错误的原因及解决
  19. android类似iphone照片幻灯片,8个最佳照片编辑应用让你的Android或iPhone照片看起来不可思议...
  20. dataV 自定义组件开发(个人信息展示 自动轮播)

热门文章

  1. DataFrame里的replace替换
  2. 1297 树中节点的祖先
  3. springboot实现多线程定时发送邮件
  4. 汇佳学校凝心聚力缔造教育的第三选择
  5. IDC:2021年全球物联网开支预计突破1.4万亿美元
  6. 基于MATLAB 2014b的多项式除法程序
  7. CodeForces - 707B Bakery(贪心)
  8. Python数据分析高薪实战第十天 数据绘图进阶与实战
  9. ios9.0.2无需验证降级8.4.1详细教程
  10. GraphR: Accelerating Graph Processing Using ReRAM(论文翻译 HPCA2018)