您的位置:首页 > 编程语言 > C#

C#读取excel工作表(sheet)中的内容-----采用名称的方法

2013-05-10 11:25 495 查看
        天帮同学修改程序,发现程序导出后的excel文件,自己往里添加几行后,再执行导入,就无法读取自己写的数据。在网上查了半天,都没有找到方法,最后通过查看excel的学习书籍,才找到原因。现把具体的原因和过程写下来,有同样问题的朋友可以试一试。

一、遇到的问题

1.通过程序中自己写的文件导出,得到的excel文件如下(以Node_Group为例):



2.再向里面添加自己写入的数据:



3、用程序读取excel文件:



4、发现,程序只是将原先导出的数据读取了出来,而没有将自己添加的数据读出来。怎么才能让自己添加的数据都读取出来,就是需要解决的问题。

二、尝试方法:

1、为了弄明白程序是如何读取excel文件的,首先对excel工作表有了解:



2、再看了一下文件读取的程序:



3、发现这里从工作表(Sheet)读取的时候,表名前面并没有添加美元符号(“$”),这与大多数网上说的读取工作表的方法不一致,改成有美元符号的表名,再试。程序在读取到node_group表的时候就死机了。



三、解决问题:

1、经过了好几次的失败,感觉单纯从程序方面进行修改,貌似解决不了问题,是不是excel中设置有什么问题。

2、经过程序查看,发现导出文件的表头都是事先写好的,直接往进去写的是数据。

       不管是文件导出还是导入,都不是写在了工作表中,而是写在了变量中(如,cos_config)。在excel中,如何表现这个变量?



3、最后终于发现,是excel中的名称管理器,发挥了很大的作用。



4、打开名称管理器,就可以发现,程序中规定的名称,都在这里可以看见。



5、对于要修改的node_group,查看其引用的位置,发现只有文件导出时的前三行(图中黑色虚线方框中):





6、自己设定引用位置,将自己添加的数据都包含进去。



7、再进入程序试验,发现自己添加的数据也被导入了进去:



四、结论:

       名称的方法对数据进行管理,感觉不管对程序还是对excel文件,都是比较方便,但是在导出和导入的时候,还是需要特别注意。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# Excel 文件导入