知方号

知方号

C#自动更新Excel报表而不改变原有样式(2023.8.11)

C#自动更新Excel报表而不改变原有样式(2023.8.11)

C#自动更新Excel报表而不改变原有样式 2023.8.11 1、需求分析1.1 原始数据表(`原始数据.xlsx`)1.2 Excel报表(`20230811 报表.xlsx`)1.3 报表更新内容(复制粘贴后的效果) 2、目标实现2.1 Excel文件类型分析(xls和xlsx)2.2 C# 解决Excel报表自动更新2.2.1 C#环境配置(VS2010+C#)2.2.2 新建C#项目2.2.3 编写C#代码2.2.4 运行结果2.2.5 总结

1、需求分析

        在日常的工作和学习生活中,很多单位需要进行统计分析生成Excel报表,报表文件是一个汇总性的文件,它的格式一般来说相对固定,而工作人员需要做的就是整理汇总,这个过程当中通常需要利用其它来源的原始数据表,也就是说需要将各方的Excel表格中的数据按照对应关系更新到指定的Excel报表文件中,如果采用传统的人工复制的方式则效率低下,可能会出错,工作量大;而此时则可以利用编程语言来提高办公的数据处理自动化效率并提高准确率,工作人员可将原来复制粘贴数据的时间用来检验数据是否更新正确,可以极大地缩短工作时间从而得心应手。

1.1 原始数据表(原始数据.xlsx) 温度 湿度

        原始数据表Excel中包含 温度 和 湿度 两个表,这两个表的结构相同,第一列都是站点点号,第二列和第三列则是相邻两天的监测数据。

1.2 Excel报表(20230811 报表.xlsx)

        Excel报表中包含四个表,由于表中的点号往往不一定和原始数据中的点号相对应,同时天气原因会导致原始数据中的部分点号可能会观测不到数据,因此需要以原始数据为参考对这四个表中的昨天温度(湿度)和今天温度(湿度)两列数据按照站点号进行快速有效的更新。

温度1-20 温度21-39 湿度1-20 湿度21-39 1.3 报表更新内容(复制粘贴后的效果)

        由于这里原始数据中的点号顺序和报表中要更新的点号顺序一致,所以传统复制粘贴的方式能够采用,但这种方式效率低下,在数据量大且点号顺序不一致时面临极大的不确定性和不准确性,当然非要使用复制粘贴也不是不可以,需要在原始数据表中按照更新报表中的站点号顺序来用宏筛选赋值后即可操作(主要利用IF、IFERROR和VLOOKUP三个函数,如:IF(IFERROR(VLOOKUP(A317,A23:G310,6,0),NA()),IFERROR(VLOOKUP(A1,A23:G310,6,0),NA()),NA()))

温度1-20 更新后 温度21-39 更新后 湿度1-20 更新后 湿度21-39 更新后 2、目标实现 2.1 Excel文件类型分析(xls和xlsx)

        这里利用C#编程语言实现对Excel数据的操作,其中主要包含读取Excel数据和写入Excel数据,而常见的Excel数据格式包含.xlsx、.xls和.csv等,这里主要操作的是xls和xlsx类型的Excel数据表。         xls和xlsx的区别主要包含三个方面:

(1)文件格式不同 xls 是一个特有的二进制格式,其核心结构是复合文档类型的结构而xlsx 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。 (2)版本不同 xls是Excel 2003及以前版本生成的文件格式而xlsx是Excel 2007及以后版本生成的文件格式 (3)兼容性不同 xls 就是 Microsoft Excel 工作表,是一种非常常用的电子表格格式。xls文件可以使用Microsoft Excel打开,使用Microsoft Excel可以将XLS格式的表格转换为多种格式:XML表格、XML数据、网页、使用制表符分割的文

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。