excel怎么逐列讀取所有數(shù)據(jù)-創(chuàng)新互聯(lián)

這篇文章主要介紹“excel怎么逐列讀取所有數(shù)據(jù)”,在日常操作中,相信很多人在excel怎么逐列讀取所有數(shù)據(jù)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”excel怎么逐列讀取所有數(shù)據(jù)”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)鄧州,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using NPOI.SS.UserModel;

using NPOI.HSSF.UserModel;

using System.IO;

namespace www.xinduofen.cn

{

  class NpoiOperateExcel

  {

    /// <summary>

    /// 逐列讀取某一個(gè)excel文件的某一個(gè)工作表有效范圍內(nèi)的全部內(nèi)容,如果某個(gè)單元格中無內(nèi)容,則將以空字符串形式填寫到List《string》的相應(yīng)位置,以string.IsNullOrEmpty(str)形式判斷是否為空即可

    /// </summary>

    /// <param name="save_address">代表excel表格保存的地址,包括"文件名.xls"</param>

    /// <param name="sheet_number">代表將要讀取的sheet表的索引位置</param>

    /// <returns>返回 “不為空” 代表讀取成功,否則為讀取失??;讀取數(shù)據(jù)list《string》代表一列數(shù)據(jù),有多少個(gè)就代表有多列數(shù)據(jù)(所有列上對(duì)齊</returns>

    public static List<List<string>> colReadAll(string save_address, int sheet_number)//讀取excel表格相應(yīng)工作表的所有數(shù)據(jù)

    {

      List<List<string>> data = null;

      //如果傳入?yún)?shù)合法

      if (!string.IsNullOrEmpty(save_address) && sheet_number > 0)

      {

        int rowAllCnt = NpoiOperateExcel.rowORcolAllCount(save_address, sheet_number, true);

        int colAllCnt = NpoiOperateExcel.rowORcolAllCount(save_address, sheet_number, false);

        data = NpoiOperateExcel.colReadSection(save_address, 1, rowAllCnt, 1, colAllCnt, sheet_number);

      }

      return data;

    }

        public static int rowORcolAllCount(string save_address, int sheet_number, Boolean readFlag)//讀取excel表格相應(yīng)工作表的所有數(shù)據(jù)

    {

      int rowORcolCnt = -1;//初始化為-1

      FileStream readfile = null;

      try

      {

        //如果傳入?yún)?shù)合法

        if (!string.IsNullOrEmpty(save_address) && sheet_number > 0)

        {

          readfile = new FileStream(save_address, FileMode.Open, FileAccess.Read);

          HSSFWorkbook hssfworkbook = new HSSFWorkbook(readfile);

          ISheet sheet = hssfworkbook.GetSheetAt(sheet_number - 1);

          if (sheet != null)

          {

            if (readFlag)//如果需要讀取‘有效行數(shù)’

            {

              rowORcolCnt = sheet.LastRowNum+1;//有效行數(shù)(NPOI讀取的有效行數(shù)不包括列頭,所以需要加1)

            }

            else

            { //如果需要讀取‘大有效列數(shù)’

              for (int rowCnt = sheet.FirstRowNum; rowCnt <= sheet.LastRowNum; rowCnt++)//迭代所有行

              {

                IRow row = sheet.GetRow(rowCnt);

                if (row != null && row.LastCellNum > rowORcolCnt)

                {

                  rowORcolCnt = row.LastCellNum;

                }

              }

            }

          }

        }

      }

      catch (Exception)

      {

        Console.WriteLine("NpoiOperateExcel.rowOrColumnAllCount方法產(chǎn)生了異常!");

      }

      finally

      {

        if (readfile != null) { readfile.Close(); }

      }

      return rowORcolCnt;

    }

        public static List<List<string>> colReadSection(string save_address, int start_row, int stop_row,

      int sart_column, int stop_column, int sheet_number)//讀取excel表格相應(yīng)工作表的部分?jǐn)?shù)據(jù)

    {

      List<List<string>> data = null;//初始化為空

      FileStream readfile = null;

      try

      {

        //如果傳入?yún)?shù)合法

        if (!string.IsNullOrEmpty(save_address) && start_row > 0 && stop_row > 0 && sart_column > 0 && stop_column > 0 && sheet_number > 0)

        {

          readfile = new FileStream(save_address, FileMode.Open, FileAccess.Read);

          HSSFWorkbook hssfworkbook = new HSSFWorkbook(readfile);

          ISheet sheet = hssfworkbook.GetSheetAt(sheet_number - 1);

          if (sheet != null)

          {

            for (int columnIndex = sart_column - 1; columnIndex < stop_column; columnIndex++) {

              List<string> oneCol= new List<string>();

              for (int rowIndex = start_row - 1; rowIndex < stop_row; rowIndex++) {

                IRow row = sheet.GetRow(rowIndex);

                if (row != null)

                {

                  ICell cell = row.GetCell(columnIndex);

                  if (cell != null)

                  {

                    oneCol.Add(cell.StringCellValue);

                  }

                  else

                  {

                    oneCol.Add("");//填充空的數(shù)據(jù)

                  }

                }

                else {

                  oneCol.Add("");//填充空的數(shù)據(jù)

                }

              }

              if (data == null)

              {

                data = new List<List<string>>();//初始化

              }

              data.Add(oneCol);

            }

          }

        }

      }

      catch (Exception)

      {

        Console.WriteLine("NpoiOperateExcel.colReadSection方法產(chǎn)生了異常!");

      }

      finally

      {

        if (readfile != null) { readfile.Close(); }

      }

      return data;

    }

    }

}

到此,關(guān)于“excel怎么逐列讀取所有數(shù)據(jù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文名稱:excel怎么逐列讀取所有數(shù)據(jù)-創(chuàng)新互聯(lián)
本文URL:http://muchs.cn/article12/poedc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站改版用戶體驗(yàn)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司