C# 将txt文件内容导入到winform系统中,将tab制表符忽略并将数据处理成自己想要的标准样式。

来源:互联网 发布:js 点击切换li中内容 编辑:程序博客网 时间:2024/05/17 00:13

事件起因:这两天要帮老师录入问卷调查的结果到excel中供其做后续分析。问卷所有题目都为单项选择题,为了方便,便以1,2,3,4,5……来给各个备选答案编号量化,而我所要做的工作,就是把所有问卷的A、B、C、D、E……答案转换成阿拉伯数字之后一一录入到Excel中。试了几份之后,被其超大的工作量所打败,最近正在研究导入导出,就思考是否可以从这边得到帮助。


解决思想:1.先用手工将所有的答案转换为阿拉伯数字写在题目旁,以便于输入,否则头昏眼花害了老师的博士论文可罪过大了。

这一步可以找同学帮忙,并行节约时间。

2. 将所有阿拉伯数字按顺序的保存在txt文件中,之所以选择txt而不是直接Excel,是因为这样输入的速度快很多。

因为题目很多,所以在一定的题目之间用tab键隔开来便于输入的正确和速度。

3.写一小段程序,将所有的阿拉伯数字导入到程序中,然后想办法将其处理之后按条件写到Excel文件中,解决问题。

 


具体步骤:

1.将txt文件导入到程序中,建立的是winform项目,单机版本即可。现给出导入函数,注意在文件头部引用using System.IO; 


2.将导入所得到的字符串进行去tab处理,但是保留第一个tab,原因是,每一行行首的若干个字符表示问卷代码,如rs1,rs2,……rs78,……,rs120,……这样,因此要保留这个tab键来区分。以下为去tab代码。

 

注意以上代码只能去一个tab键,如果两个tab键连在一起,就还会剩下一个。为了解决这个问题,有想法将其改为递归函数,但是没动手去改,太懒了。我的解决方法很简单,因为知道最多就2个tab键相连,所以在主函数中重复调用了两次。


3.将去tab键后的字符串标准化。

从上面的代码中知道,由于去tab键之后字符串发生了变化。具体而言,就是因为字符在往前移之后本应造成新的字符串变短,但是实际上它多余的部分是被原字符串的某个数而重复添加来保持新旧两个字符串长度的相同。

而我要做的,就是截取。保留有效的字符长度,使得所有字符串都是有效字符串。

但是,由于问卷代码的长度是变化的,问卷题目是固定的,因而每个字符串长度是不一致的。如test01……就会比test110……少一位字符。也就是说字符串的长度也是动态的,编写代码的时候要注意这一点。

 

 


 

4.将得到标准的有规律的字符串数组写到excel中。

 


 

至此,全部完成,将主函数列出。

 

原创粉丝点击