首页 > 编程语言 >C# 导出到excel 相关技巧

C# 导出到excel 相关技巧

时间:2024-04-22 17:35:56浏览次数:23  
标签:comment C# excel Cells 导出 strCommonModel objSheet dt

 1 ## Exece表格添加批注方法
 2 
 3 ```C#
 4    var demon = strCommonModel;
 5                 Comment comment = objSheet.Comments[intLines, 2];
 6                 if (comment == null)
 7                 {
 8                     int intCommentNO = objSheet.Comments.Add(intLines, 2);
 9                     comment = objSheet.Comments[intCommentNO];
10                 }
11                 comment.WidthCM = 10;
12                     DataTable dt = GetPanelSnellist(strCommonModel);
13                 if (dt.Rows.Count > 0)
14                 {
15                     comment.Note = " " + strCommonModel + " \r\n " +
16                            "EOL Date:"+dt.Rows[0]["PlannedEOL"].ToString()+" \r\n " +
17                            "EOL Status: " + dt.Rows[0]["EOLStatus"].ToString() + " \r\n " +
18                            "替代Source:" + dt.Rows[0]["NewProduct"].ToString() + "";
19                     objSheet.Cells[intLines, cintColPanel].PutValue(strCommonModel);
20                 }
21                 else 
22                 {
23                     comment.Note = " " + strCommonModel + " \r\n " +
24                                "EOL Date:无 \r\n " +
25                                "EOL Status: 无 \r\n " +
26                                "替代Source:无";
27                     objSheet.Cells[intLines, cintColPanel].PutValue(strCommonModel);
28                 }
29 ```
  1 ## 添加筛选项
  2 
  3 ```C#
  4 //1行到7行添加筛选项
  5  objSheet.AutoFilter.Range = CellsHelper.CellIndexToName(1, 0) + ":" +
  6                                             CellsHelper.CellIndexToName(1, 7);
  7 ```
  8 
  9 ## 自動調整行高以適應內容
 10 
 11 ```C#
 12 
 13             // 自動調整行高以適應內容
 14                  // 自動調整行高以適應內容
 15             AutoFitterOptions options = new AutoFitterOptions();
 16             options.AutoFitMergedCells = true;
 17             sheet.AutoFitRows(options);
 18 ```
 19 
 20 ## 报表公式计算优化速度语法
 21 
 22 ```C#  代码出处,E:\工作\AD\DotNet\Src\QAS\SCM\SPS\Web\SPS\Bll\report\tb_match_rate_Bll.cs
 23 if (EOHSumList?.Count > 0)
 24 {
 25 formula += $"+SUM({CellsHelper.CellIndexToName(EOHSumList.Min(), iColumn)}:{CellsHelper.CellIndexToName(EOHSumList.Max(), iColumn)})";
 26 }
 27 
 28 // Panel、SSB要扣掉所有Demand
 29 if (RowPartName == MatchRatePartName.Panel || RowPartName == MatchRatePartName.SSB)
 30 {
 31 if (DemandList?.Count > 0)
 32 {
 33 formula += $"-SUM({CellsHelper.CellIndexToName(DemandList.Min(), iColumn)}:{CellsHelper.CellIndexToName(DemandList.Max(), iColumn)})";
 34 }
 35 }
 36 // SKD只有扣掉對應的Demand
 37 else if (RowPartName == MatchRatePartName.SKD)
 38 {
 39 if(demandRowNo?.Count > 0)
 40 {
 41 formula += $"-SUM({string.Join(", ", demandRowNo.Select(rowNo => CellsHelper.CellIndexToName(rowNo, iColumn)))})";
 42 }
 43 }
 44 ```
 45 
 46 ## 在原有表单新增工作表
 47 
 48 ```C#
 49   Workbook book = new Workbook(templatefileName);
 50    Worksheet sheet = book.Worksheets[0];
 51     Worksheet newSheet = book.Worksheets.Add("whereuse");
 52 ```
 53 
 54 ## 直接插入表操作方法
 55 
 56 ```C#
 57             Workbook wb = new Workbook();
 58             Worksheet sheet = wb.Worksheets[0];
 59             Style stTitle = wb.CreateStyle();
 60             sheet.Name = "BOM未建";
 61             ImportTableOptions importTable = new ImportTableOptions();
 62             importTable.CheckMergedCells = true;
 63             sheet.Cells.ImportData(BomDt, 0, 0, importTable);
 64 ```
 65 
 66 ## 设置颜色方法之一
 67 
 68 ``` C#
 69             string InquiryFile = HttpContext.Current.Server.MapPath("\\Download\\DownloadFormat\\PanelSupplierRtf.xlsx");
 70             if (!File.Exists(InquiryFile)) { throw new Exception("NO Template"); }
 71            //设置方法名
 72             Workbook workbook = new Workbook();
 73             //读取文件内容
 74             workbook.Open(InquiryFile);
 75             //将文件读取到worksheet方法里,进行读取
 76             Worksheet worksheet = workbook.Worksheets[0];
 77             //读取EXCEL表格里行设置的颜色
 78             Style brown = worksheet.Cells[1, 9].GetStyle();//深棕色
 79             //文本读取对应类型剧中
 80             //HorizontalAlignment 水平对齐   TextAlignmentType.Center; 剧中
 81             brown.HorizontalAlignment = TextAlignmentType.Center;
 82              //VerticalAlignment 垂直对其   TextAlignmentType.Center; 剧中
 83             brown.VerticalAlignment = TextAlignmentType.Center;
 84             Style blue = worksheet.Cells[1, 10].GetStyle();//浅蓝色
 85             blue.HorizontalAlignment = TextAlignmentType.Center;
 86             blue.VerticalAlignment = TextAlignmentType.Center;
 87             Style lightBrown = worksheet.Cells[3, 0].GetStyle();//浅棕色
 88             lightBrown.HorizontalAlignment = TextAlignmentType.Center;
 89             lightBrown.VerticalAlignment = TextAlignmentType.Center;
 90             Style green = worksheet.Cells[4, 8].GetStyle();//浅绿色
 91             Style lightGreen = worksheet.Cells[3, 8].GetStyle();//浅绿色
 92 
 93 
 94             //给第一行第一列到第二行第二列总共4个单元格设置样式
 95             Range range= worksheet.Cells.CreateRange(0, 0, 2, 2);
 96             range.ApplyStyle(style, new StyleFlag() { All=true})
 97 
 98 
 99 
100 ```
101 
102 ## DataRow表重新排序方法
103 
104 ```C#
105 
106 newDt.DefaultView.Sort = "vendorCode,vendor,inch,TPVModel";
107 //DefaultView   获取可能包含筛选视图或游标位置的表的自定义视图。
108 //ToTable         基于现有的 System.Data.DataView 中的行,创建并返回一个新的 System.Data.DataTable。
109 newDt = newDt.DefaultView.ToTable();
110 ```

 

## Exece表格添加批注方法
```C#    vardemon = strCommonModel;                 Commentcomment = objSheet.Comments[intLines, 2];                 if (comment == null)                 {                     intintCommentNO = objSheet.Comments.Add(intLines, 2);                     comment = objSheet.Comments[intCommentNO];                 }                 comment.WidthCM = 10;                     DataTabledt = GetPanelSnellist(strCommonModel);                 if (dt.Rows.Count > 0)                 {                     comment.Note = " " + strCommonModel + " \r\n " +                            "EOL Date:"+dt.Rows[0]["PlannedEOL"].ToString()+" \r\n " +                            "EOL Status: " + dt.Rows[0]["EOLStatus"].ToString() + " \r\n " +                            "替代Source:" + dt.Rows[0]["NewProduct"].ToString() + "";                     objSheet.Cells[intLines, cintColPanel].PutValue(strCommonModel);                 }                 else                 {                     comment.Note = " " + strCommonModel + " \r\n " +                                "EOL Date:无 \r\n " +                                "EOL Status: 无 \r\n " +                                "替代Source:无";                     objSheet.Cells[intLines, cintColPanel].PutValue(strCommonModel);                 } ```

标签:comment,C#,excel,Cells,导出,strCommonModel,objSheet,dt
From: https://www.cnblogs.com/SDdemon/p/18151045

相关文章

  • 用 VSCode 编写 Markdown
    用VSCode编写Markdown1.环境配置1.1.安装VSCode插件在VSCode中依次搜索并安装以下插件:MarkdownAllinOne-实现一些基础的Markdown编写体验,比如快捷键、列表编辑、自动生成目录等等MarkdownPreviewEnhanced-实现github风格的预览、支持导出为HTML、PDF......
  • Qt 从 QTransform 逆向解出 Translate/Scale/Rotate(平移/缩放/旋转)分析
    QTransform用于图形绘制,它定义了如何平移(translate)、缩放(scale)、切变(shear)、旋转(rotate)或投射(project)坐标系。注意:QTransform是作用于坐标系,不是直接作用于图形。实际运用中我们可以通过QPainter、QGraphicsView、QGraphicsItem实现图形的平移、缩放、旋转等操作,但是需要从......
  • docker - [06] 安装部署Tomcat
    题记部分   一、官方测试镜像官方文档给出以下命令,一般用来测试,用完即删,下载并运行镜像,退出镜像就会自动删除镜像?亲测不会自动删除dockerrun-it--rmtomcat:9.0使用快捷键:Ctrl+P+Q可以让其在后台运行(这里执行Ctrl+C之后,dockerimages还是有tomcat镜像) ......
  • jeect 自定义包路径问题
    问题描述Annotation-specifiedbeanname'dictAspect'forbeanclass[org.jxbd.common.aspect.DictAspect]conflictswithexisting,non-compatiblebeandefinitionofsamenameandclass[org.jeecg.common.aspect.DictAspect] classpathresource[org/j......
  • ABC350
    E.杀了我个措手不及的记忆化搜索。首先观察\(N\leq10^{18}.\)但是这却是个不用矩快的\(DP.\)设\(f[x]\)为\(x\)的答案。有以下两种决策:第一种:\(f[x]=f[x/A]+X\),也就是直接执行第一种方案。第二种:掷出\(Dice\),然后考虑\(Dice\)的期望。\(f[x]=\dfrac{f[x]+f[x/2......
  • mysql备份工具 percona-xtrabackup
    1.mysqlfordocker安装#/opt/compose/zabbix/mysql.ymlversion:'3'services:mysql:image:mysql:8.0container_name:mysqlrestart:alwaysports:-3306:3306-33060:33060volumes:-/data/mysql:/var/lib......
  • clickhouse-backup(RPM方式安装)
    1.下载下载地址https://github.com/Altinity/clickhouse-backup 2.安装[root@dc-biz-ck-192soft]#rpm-ivhclickhouse-backup-2.4.35-1.x86_64.rpm 3.查看版本号[root@dc-biz-ck-192soft]#clickhouse-backup-vVersion:2.4.35GitCommit:5e41c8be05849a......
  • 海康ISC平台如何添加到视频网关中
    一、准备工作在进行海康ISC平台添加到视频网关的操作前,需要做好以下准备工作:确保视频网关已正确安装并连接到网络中,且能够正常访问ISC所在网络。确保海康ISC平台已安装并配置完成,能够正常运行。获取ISC平台的AK/AS、IP、端口等必要信息。 二、添加ISC平台到视频网关 ......
  • AI+X 经典共读-《动手学深度学习(Pytorch版)》Task打卡
    0.笔记仓库AI入门路线Task01:初识深度学习深度学习介绍和环境安装配置1.深度学习介绍1.1AI地图x轴:模式y轴:想做的东西感知:所见(人能够快速反应)推理:基于所见的想象知识:根据所见形成自己的知识规划:根据知识进行长远的规划自然语言处理:感知,用的最多的是机器翻译计算机视......
  • JTCR-处理字符串-15
    Java将字符串作为String类型的对象,不像其他语言,以字符数组的方式实现。字符串创建之后就不可修改。进行修改相关操作返回的是新字符串,原先的字符串不会发生变化。将字符串以不可变的方式实现是为了更有效率。与String对应的StringBuffer和StringBuilder类创建之后可以修......