首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

如何直接把dataset的前两条数据删除,然后把第三条数据当作列名

2013-08-23 
怎么直接把dataset的前两条数据删除,然后把第三条数据当作列名因为这个dataset是从excel直接读出来的,由于

怎么直接把dataset的前两条数据删除,然后把第三条数据当作列名
因为这个dataset是从excel直接读出来的,由于excel的格式问题,现在想把第一行和第二行删除,把第三行的数据当作列名,请问各位大侠怎么实现啊?
[解决办法]

引用:
因为这个dataset是从excel直接读出来的,由于excel的格式问题,现在想把第一行和第二行删除,把第三行的数据当作列名,请问各位大侠怎么实现啊?



 DataTable dt = ds.Tables[0];
            DataRow drInfo=dt.Rows[2];
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                dt.Columns[i].ColumnName = drInfo[i].ToString();
            }
            dt.Rows.RemoveAt(0);
            dt.Rows.RemoveAt(0);
            dt.Rows.RemoveAt(0);

[解决办法]
呵呵,回去找本ADO.NET书来看,直接翻到DataSet对象章节,你就会发现,DataSet其实是模拟一个SQL数据库,只不过它是在内存里,不能永久保存罢了

而且它作为一个对象,有很多属性和方法可以调用,其实你的这种需求,不是难事,前提是你对DataSet对象有足够的了解

不然,在这里想要回答你的上面问题,还真是不懂怎么解答,比如你说的删除前两行这种操作,简直和没问差不多,因为DataSet这个内存中的数据库,不可能没有删除方法的

而你说的第三行作为列名,同理,不是难事,你就遍历一下对象里的表集合的第三行,其实这个第三行也是一个行对象,同样它也有N多属性和方法,足够你玩转它们

而容器对象本身,肯定可以动态修改列标题的,它就像内存里的一个数据库,你现在想修改这个数据库里的一个表的列标题,这肯定没问题

我这里不上代码了,讲思路容易,代码很无语,希望楼下的朋友能给你代码
[解决办法]

    DataTable dt = new DataTable();

            Workbook hssfworkbook;
            
            hssfworkbook = new HSSFWorkbook(fileStream);
            
            Sheet sheet = hssfworkbook.GetSheetAt(0);


            System.Collections.IEnumerator rows = sheet.GetRowEnumerator();

            Row headerRow = sheet.GetRow(2);//选择第三行
            int cellCount = headerRow.LastCellNum;
            
            for (int j = 0; j < cellCount; j++)
            {
                Cell cell = headerRow.GetCell(j);
                dt.Columns.Add(cell.ToString());
            }

            for (int i = (sheet.FirstRowNum + 3); i <= sheet.LastRowNum; i++)//从第四行读取数据
            {
                Row row = sheet.GetRow(i);
                DataRow dataRow = dt.NewRow();

                for (int j = row.FirstCellNum; j < cellCount; j++)
                {
                    if (row.GetCell(j) != null)
                        dataRow[j] = row.GetCell(j).ToString().Trim();//使用Trim方法去除空格
                        //dataRow[j] = row.GetCell(j).ToString();
                }

                dt.Rows.Add(dataRow);
            }
            return dt; 

热点排行