怎么给datatable 表格动态增加行

 时间:2026-02-14 15:57:48

1、在VS2010中,构建Excel表导入数据的WinForm界面,如下图所示:

怎么给datatable 表格动态增加行

2、在VS2010的解决方案管理器点击“右键—>添加引用”,将NPOI组件添加到项目中,如下图所示:

怎么给datatable 表格动态增加行

3、给导入按钮的_Click方法,编写导入的数据解释代码,主要是通过NPOI引入数据,部分代码如下:

            int intFirstRow = 0;

            if (numStartRow.Value > 0)

            {

                intFirstRow = (int)(numStartRow.Value) - 1;

            }

            dt = null;

            dt = Import.ImportExcel(file, ccbRepType.SelectedIndex, intFirstRow); //导入数据,首行默认0

怎么给datatable 表格动态增加行

4、通过自定义的Import类,给datatable增加动态的列,主要代码如下:

              int cellCount = headerRow.LastCellNum;

               //一定要对单元格类型作判断 否则会报错 

               for (int i = headerRow.FirstCellNum; i < cellCount; i++)

                {

                    if (headerRow.GetCell(i) == null || headerRow.GetCell(i).ToString().Trim() == "") //StringCellValue.Trim() == ""

                    {

                        // 如果遇到第一个空列,则不再继续向后读取  LJS         

                        cellCount = i + 1;

                        break;

                    }

                    DataColumn column = new DataColumn(Convert.ToChar(((int)'A') + i).ToString());

                    table.Columns.Add(column);

                }

怎么给datatable 表格动态增加行

5、通过自定义的Import类,将行数据动态写入到datatable中去,部分代码如下:

               for (int i = HeaderRowIndex; i <= sheet.LastRowNum; i++)

                {

                    HSSFRow row = (HSSFRow)sheet.GetRow(i);

                    if (row == null || row.GetCell(0) == null || row.GetCell(0).ToString().Trim() == "")

                    {

                        // 如果遇到第一个空行,则不再继续向后读取                

                        break;

                    }

                    DataRow dataRow = table.NewRow();

                    for (int j = row.FirstCellNum; j < cellCount; j++)

                    {

                        HSSFCell cell = (HSSFCell)row.GetCell(j);

                        if (row.GetCell(j) != null)

                        {

                            switch ((HSSFCellType)cell.CellType)

                            {

                                case HSSFCellType.BLANK:

                                    dataRow[j] = cell.StringCellValue;

                                    break;

                                case HSSFCellType.BOOLEAN:

                                    dataRow[j] = cell.BooleanCellValue;

                                    break;

                                case HSSFCellType.NUMERIC:

                                    dataRow[j] = cell.NumericCellValue;

                                    break;

                                ……

                             }

                    }

                    table.Rows.Add(dataRow);

怎么给datatable 表格动态增加行

6、NPOI控件

笔者以上所用的npoi版本为1.2.5版本(部分自定义修改了),对于具体npoi相关资料可以从网上查找获得。

  • 注册表清除顽固病毒技巧
  • win10系统修改微信储存位置保护固态盘
  • windows installer无法启动的解决方法?
  • Windows10正确进入F8安全模式
  • 用友ATO+模型选配设置
  • 热门搜索
    南日岛旅游攻略 宿州旅游 西安旅游路线 旅游资源开发 临海旅游 南阳旅游景点大全 桂林旅游团 阜新旅游 浙江 旅游 玉龙雪山旅游