读取excel,读取文本文件

背景:

领导不知道在做什么项目,前天给了我们一个200行以上的表格,让我们把里面的内容,用switch case写出来。

我和同事分工,大概每人写了100多个,至少写了半小时以上,写完之后,交换检查,想想,刚刚写完100多个switch case,又要再去检查100多个,

晕了,真是头晕,果然,两人都有错误,完成这个任何用了2小时左右。

今天领导不在,昨天又给我们安排 任务,又是一个这样的表格,用swtich case写出来。

当时我们就醉了,好吧,不过我们也没说什么。今天上午上班来了之后,先把其它任务完成。接着做这个。

我一看,这次可不是200多行,足足有700,800行。意味着要写700多个case: break;

我一想,连写带检查,怎么也得小半天了,这样写下去可不个办法。

于是我跟同事商量了下,问他可不可以写个程序直接生成。他说可以呀,但是chm格式的文件没办法读啊。

于是我把chm格式的表格,复制,粘贴到了,excel中。他说可以了,这就好办了,但是我是一个菜鸟,什么都不会,他说让我写,说这个任务给我有挑战性,他可以给我提供思路,后来我想了想,按自己的方式,将excel转成了文本文件(以逗号分格),将文件读到了c#程序中。使用字符串拼接,很简单,很顺序了就写完了700多个case.

后来看了看我同事的写法,他是直接读的excel,于是我又自己试了试,写了一个直接从excel的程序,其实都很简单。

下面付上代码 :

static void Main(string[] args)
        {
            //ReadTxt();
            ReadExcel();

        }

        private static void ReadExcel()
        {
            StringBuilder sb = new StringBuilder();
            string stringCase = @"case {0}:
                                    Code = ""{1}"";
                                    Info = ""{2}"";
                                    break;
                                    ";
            string ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:/tmp.xls;Extended Properties=‘Excel 8.0;HDR=NO;IMEX=1‘;"; //连接字符串

            OleDbConnection Conn = new OleDbConnection(ConnStr);
            Conn.Open();
            string sql = string.Format("select * from [{0}$]", "Sheet1");  //Sheet1为工作表的名称
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter(sql, Conn);
            da.Fill(ds);   //读取数据填充到DataSet
            foreach (DataRow row in ds.Tables[0].Rows)  //使用Table循环
            {
                string caseTmp = "";
                caseTmp = String.Format(stringCase, row[1].ToString(), row[0].ToString(), row[2].ToString());
                sb.Append(caseTmp);
            }
            Console.WriteLine(sb.ToString());
            Console.ReadKey();
        }

        private static void ReadTxt()
        {
            StringBuilder sb = new StringBuilder();
            string stringCase = @"case {0}:
                                    Code = ""{1}"";
                                    Info = ""{2}"";
                                    break;
                                    ";

            string[] lines = File.ReadAllLines("F:\\tmp.csv", Encoding.Default);  //读取所有行

            foreach (string line in lines)  //对行进行foreach循环
            {
                string caseTmp = "";
                string[] values = line.Split(‘,‘);  //行内数据使用,分格
                caseTmp = String.Format(stringCase, values[1], values[0], values[2]);
                sb.Append(caseTmp);
            }

            File.WriteAllText("F:\\tmp.txt", sb.ToString()); //将拼接完成的字符串写入文件中
            //Console.WriteLine(sb.ToString());
            Console.ReadKey();
        }

有需要的随便拿走

时间: 2024-08-19 11:39:51

读取excel,读取文本文件的相关文章

java读取Excel读取

java中读取Excel数据 package com.pcm.chni.equipment.frame; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.PushbackInputStream; import java.text.SimpleDateFormat; import java.util.

C# 读取EXCEL文件的三种经典方法

1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; OleDb

猜想-未做 利用office组件读取excel数据

---未实际使用过 用SQL-Server访问Office的Access和Excel http://blog.sina.com.cn/s/blog_964237ea0101532x.html 2007 Office system 驱动程序:数据连接组件 http://www.microsoft.com/zh-CN/download/details.aspx?id=23734 2007 Office system 驱动程序:数据连接组件 详情 版本:All File Name:AccessData

ArcGIS / C#开发 无法读取Excel(*.xlsx)文件

ArcGIS打不开Excel(*.xlsx)文件 此问题也存在于软件开发过程中,无法读取*.xlsx时,都需要此组件. 1.ArcGIS报错: Failed to connect to ddatabase. An underlying database error occured. 没有注册类  2.原因: 缺少2007 Office System 驱动程序(AccessDatabaseEngine.exe) 3.解决方案: 需要安装  2007 Office System 驱动程序(Acces

C#中excel读取和写入

1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; OleDb

C# 读取EXCEL文件

1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public DataSet ExcelToDS(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended P

OLDB读取excel的数据类型不匹配的解决方案(ZT)

1 引言  在应用程序的设计中,经常需要读取Excel数据或将Excel数据导入转换到其他数据载体中,例如将Excel数据通过应用程序导入SQL Sever等数据库中以备使用.笔者在开发“汽车产业链ASP协同商务平台”中遇到了类似需求.某汽车整车生产企业需要将其车辆发车信息发布到汽车产业链平台上去,其数据为内部ERP系统生成的Excel数据表,用户首先将该数据表上传至汽车产业链平台,平台将此Excel数据读取导入到平台内部的SQL Sever数据库中,以供其它应用使用.汽车产业链平台的开发使用的

hadoop读取Excel文件转换成txt文件

功能说明:从hdfs读取excel文件,经过poi转换成txt文本文件并输出成hdfs文件 一.引入jar包 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</v

C#读取excel等表格常用方法

0. 利用NPOI. 请查阅此插件的相关文档. 1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public DataSet ExcelToDS(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +"