excel表格标题前后有空格,c#读入到datatable中,如何去掉excel标题前后的空格呢

excel是由不同的客户提供的,每列标题有前后的空格.无法让客户去改正这个坏习惯
我用C#读取excel到datatable中,select的时候只能用* 号,因为列数不固定,无法确定.
table = dal.GetExcel("select * from [Excel 12.0;Database=E:\SellOut1.xlsx].[Sheet1$] ", conn)
DataGridView1.DataSource = table
发现导入的标题列前后有很多的空格.导致操作内存表很不方便.
有没有办法在导入datatable的时候去掉excel标题的前后空格呢?
比如excel的标题是: 空格abc空格,读入到datatable中去掉空格,变成abc呢?

可以采取两种方式处理:
1、修改导入Excel文件的方式,读取单元格内容时去掉空格;
2、不修改导入方式,得到DataTable后遍历一下,去掉空格;
希望对你有帮助,还有疑问请追问或是Hi追问

我是想去掉table中表字段"标题"前后空格,而不是表内容的前后空格.,麻烦就在这里..
谢谢热心朋友

追答

你的标题怎么来的?和内容有什么不同吗?

追问

和内容一样的.内容去掉简单.
从0 to row.count-1 遍历就可以去掉空格.但是标题是无法遍历到的啊.

追答

导入使用的OLEDB?标题不就是第一行吗?

追问

excel的标题第一行就变成了datatable的表的字段名了..datatable的字段名好像没有方法来去掉前后空格的吧.

追答

还有关联数据?这样,你设置HDR=No;进行导入,然后再处理,你看看能不能满足你的要求。
至于DataTable,DataSet.Tables[x].Columns[x].ColumnName=XXX;

追问

试验了下,还是不行.谢谢你的回答.我再想想办法.你也休息吧.辛苦辛苦!
datatable中的内容前后的空格都能去掉.但是datatable中的字段的标题前后的空格无法去掉.
打个比方.如果datatable中的内容是从第0行开始的.那么标题就在-1行了.呵呵.当然-1行是不存在的...

追答

我觉得你这个问题应该是这样的:
1、导入时设置HDR=No,那么表的第一行就不会成为标题,而是成为了内容,后续的处理也不麻烦;
2、导入后遍历DataTable中的列,修改列名,这个也是可以的;
3、操作DataTable时不使用列名,使用列索引,那么标题有没有空格完全没有关系;
暂时就想到这些,希望能对你有帮助

追问

谢谢你.我再想想办法.列名对我很重要.后续的操作都要用到列名.

追答

foreach (DataColumn column in dt.Columns)
column.ColumnName = column.ColumnName.Trim();
这样不可以吗?

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-13
能不能先遍历table中的数据并去掉空格,在赋值给dbgrid追问

有 去掉table中的表字段的前后空格的方法吗? 我是想去掉table中表字段标题前后空格,而不是内容的前后空格.

相似回答