C#调用EPPlus.dll读取Excel去掉空列

C#调用EPPlus.dll读取Excel去掉空列

		/// <summary>
        /// 获取excel数据
        /// </summary>
        /// <param name="file"></param>
        /// <param name="sheetName"></param>
        /// <returns></returns>
        public static DataTable GetExcelSheet(string file,string sheetName)
        {
            DataTable dt = new DataTable();
            try
            {
                using (ExcelPackage package = new ExcelPackage(new FileInfo(file)))
                {
                    ExcelWorksheet worksheet = null;
                    if (!string.IsNullOrWhiteSpace(sheetName))
                    {
                        worksheet = package.Workbook.Worksheets[sheetName];
                        dt.TableName = sheetName;
                    }
                    else
                    {
                        worksheet = package.Workbook.Worksheets[1];
                        dt.TableName = worksheet.Name;
                    }
                    //判断空列
                    int colCount = 0;
                    for (int a = worksheet.Dimension.Start.Column; a <= worksheet.Dimension.End.Column; a++)
                    {
                        string colName = worksheet.GetValue<string>(worksheet.Dimension.Start.Row, a);
                        if (string.IsNullOrWhiteSpace(colName))
                        {
                            colCount = a;
                            break;
                        }
                    }
                    //设置列名 
                    for (int c = worksheet.Dimension.Start.Column; c <= colCount; c++)
                    {
                        dt.Columns.Add(worksheet.GetValue<string>(worksheet.Dimension.Start.Row, c), typeof(System.String));
                    }
                    for (int r = worksheet.Dimension.Start.Row + 1; r < worksheet.Dimension.End.Row + 1; r++)
                    {
                        DataRow row = dt.NewRow();
                        for (int c = worksheet.Dimension.Start.Column; c <= colCount; c++)
                        {
                            row[c - 1] = worksheet.GetValue<string>(r, c);
                        }
                        dt.Rows.Add(row);
                    }
                    package.Dispose();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return dt;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值