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呢?
我是想去掉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();
这样不可以吗?
有 去掉table中的表字段的前后空格的方法吗? 我是想去掉table中表字段标题前后空格,而不是内容的前后空格.