C#模板文件比对
2017-02-25 20:24
176 查看
前言
最近项目里涉及到相关数据文件的上传与解析,整个过程的详细流程及实现此处暂且不讲,这里想谈一下如何确定用户上传的文件是否能够正常解析?问题描述
换句话说,就是如何判断用户上传的文件是否采用了提供的模板
比如说,你提供的模板是
姓名 | 年龄 | 身份证号 |
---|---|---|
张三 | 12 | XXXX |
姓名 | 科目 | 成绩 |
---|---|---|
张三 | 12 | XXXX |
问题分析
直接判断,肯定非常困难,因为用户上传文件的类型可能有多种同时无论是在
EXCEL上还是在
DBF文件上直接对比模板和用户上传的文件都不容易
此时可以将用户上传的文件和模板文件进行转换,转化成统一的、容易比较的层面进行对比(
这里采用的是DataTable)
代码实现
1.解析模板(模板—>DataTable)
2.解析文件(文件—>DataTable)
以上两步可以归于一类,即实现DBF文件或EXCEL文件的解析和封装DBF文件的解析与封装参见C#封装DBF文件到DataTable
EXCEL文件的解析与封装参见C#封装EXCEL文件到DataTable
3.模板文件对比
/// <summary> /// 判断两个DataTable是否具有相同的表结构 /// </summary> /// <param name="initial">基准DataTable</param> /// <param name="test">要测试的DataTable</param> /// <returns></returns> public static Boolean IsSameFormat(DataTable initial, DataTable test) { //如果列数不同,表结构肯定不同 if (initial.Columns.Count != test.Columns.Count) { return false; } //如果列数相同,循环判断是否每一列都存在 for (int i = 0; i < test.Columns.Count; i++) { if (!initial.Columns.Contains(test.Columns[i].ColumnName)) { return false; } } return true; }
相关文章推荐
- C# 模板文件比对——增强版
- 简单C#生成静态及相关读取模板文件
- 在C#中根据Excel文件画FastReport .NET报表模板
- c# aspx 动态编译文件模板
- C#资源文件比对与自动翻译。
- C# 通过比对哈希码判断两个文件内容是否相同
- C#模板引擎 RazorEngine3.7的扩展 — 引入外部文件
- c#asp.net表格Html数据模板转换Pdf文件web打印pdf报表dll
- c# 读数据库利用模板书签写word文件
- 同步定制 Unity团队 程序的C#文件模板
- 比对两个Word文件内容是否一致的C#解决办法
- 同步定制 Unity团队 程序的C#文件模板
- C#导出Excel|导出数据到Excel模板文件里
- C# 根据Word 模板生成word 文件
- DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解
- 用正则表达式解析C#文件(updated)
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
- JNLP文件模板
- 用正则表达式解析C#文件(Updated)