C# 读取EXCEL(CSV文件方式)

最近遇到一件事,要把所有人员信息(通过excel给出)生成一个静态页面,代码示例如下:
<html>
<body>
<tr>
  <td>
	名字:张三</br>
	职业:工程师</br>
	<hr/>
	
  </td>
</tr>
<tr>
  <td>
	名字:李四</br>
	职业:教师</br>
	<hr/>
	
  </td>
</tr>
</body>

给的excel示例如下:

excel样例

实际信息量远远不止这些,如果人工的话得做2到3个小时。作为一名程序员,我想一定要通过程序来自动完成这项任务。

于是,查阅了各种资料。找到了一种比较方便的方法。

首先,将Excel文件的格式转换为.csv(这个不会的自行百度)。

然后,建立一个C#窗体程序:(拖入一个按钮和一个richTextBox)

窗体样式

然后双击按钮,编写代码:

<span style="white-space:pre">	</span>private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();//实例化打开对画框。
            if (op.ShowDialog() == DialogResult.OK)//选择的文件名有效
            {
                //创建一个文件流
                FileStream fs = new FileStream(op.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
                //创建读这个流的对象,第一个参数是文件流,第二个参数是编码(其实里面的值是多少对我们这个读没有什么问题)
                StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding(936));

                string str = "";
                while (str != null)
                {
                    str = sr.ReadLine();//读取一行
                    if (str == null) break;//读完了就跳出循环

                    String[] eachLine = new String[2];//因为知道每一行excel有2个单元格,所以string[2]
                    eachLine = str.Split(',');//因为.csv文件是以逗号分隔单元格里数据的,所以调用分隔函数split
                    string ser = eachLine[0];//名字
                    string dse = eachLine[1];//职业
                    foreach (string element in eachLine)//对于这行中的每个元素
                    {
                        richTextBox1.Text += element;//在多行文本框中输出元素
<span style="white-space:pre">			</span>richTextBox1.Text += " ";//在多行文本框中加入空格
                    }
                    richTextBox1.Text += "\n";//在多行文本框中换行
                } 
                sr.Close();//关闭读流的对象
            }

        }
运行结果:

既然有了上面的方法,那么下面只要输出的格式符合网页的规范就可以了,这就很简单了,修改代码如下:

<span style="white-space:pre">	</span>private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog op = new OpenFileDialog();//实例化打开对画框。
            if (op.ShowDialog() == DialogResult.OK)//选择的文件名有效
            {
                richTextBox1.Text="";//清空文本框内容
                //创建一个文件流
                FileStream fs = new FileStream(op.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
                //创建读这个流的对象,第一个参数是文件流,第二个参数是编码(其实里面的值是多少对我们这个读没有什么问题)
                StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding(936));

                string str = "";
                while (str != null)
                {
                    str = sr.ReadLine();//读取一行
                    if (str == null) break;

                    String[] eachLine = new String[2];
                    eachLine = str.Split(',');
                    string name = eachLine[0];
                    string job = eachLine[1];
                    richTextBox1.Text += "<tr>" + "\n" + "    " + "<td>" + "\n";
                    richTextBox1.Text +="        "+"名字:"+name+"</br>"+"\n";
                    richTextBox1.Text += "        " + "职业:" + job + "</br>" + "\n";
                    richTextBox1.Text += "        " + "<hr/>" + "\n";
                    richTextBox1.Text+="    " + "<td>" + "\n"+"<tr>" + "\n";
                    
                } 
                sr.Close();//关闭读流的对象
            }
        }

运行结果如下:

把文本框里的内容拷贝到网页文件中去即可完成任务!




只要有音乐,就没有世界末日!

2016年10月20日20:32:05

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值