XSSFWorkbookを使用してExcelを読みます

 

次のようにXSSFWorkbook使用使用されるワークは、エクセル、特定のコードを読みます

プライベート(一覧<(ストリングCOLUMNNAME、列colomnDescription)>ヘッダ、リスト<のIList <ストリング>>行)ParseExcel(ストリングexcelPath、列SHEETNAME)
{

VARストリーム= File.OpenRead(excelPath)。
(ストリーム)を使用して、
{
VARブック=新しいXSSFWorkbook(ストリーム)。
VARシート= workbook.GetSheet(SHEETNAME)。
VAR行=新しいリスト<のIList <文字列>>();
VARヘッダ=新しいリスト<(文字列COLUMNNAME、文字列colomnDescription)>();
VAR ROWLIMIT = 10000;
VAR columnLimit = 100;

VAR firstRowの= sheet.GetRow(0)。
(; K <columnLimit; int型のk = 0 kは++)用
{
VARセル= firstRow.GetCell(K)。
(IsEndCell(セル))ブレークであれば、
VARヘッダー= ParseHeader(cell.ToString())。
headers.Add(ヘッダ)。
}


用(VAR I = 1; I <ROWLIMIT; iは++)
{
VAR行= sheet.GetRow(I)。
IF(IsEndRow(行))ブレーク。
VAR rowData =新しいリスト<文字列>();
rows.Add(rowData)。
用(int型J = 0; J <columnLimit; J ++)
{
VARセル= row.GetCell(J)。
(IsEndCell(セル))ブレークであれば、
rowData.Add(cell.ToString())。
}
}

(ヘッダ行)を返します。
}
}

プライベート(文字列COLUMNNAME、文字列colomnDescription)ParseHeader(文字列rawHeader)
{
VAR正規表現=新しい正規表現(@ "^ \ * S([^()\(\)] +)(:(?| \()([^( ?)\(\)] +)(:) | \))\よ* $ ");
VARマッチ= regex.Match(rawHeader)。
VAR COLUMNNAME = match.Groups [1] .Valueの。
VAR columnDescription = match.Groups [2] .Valueの。
(string.IsNullOrEmpty(COLUMNNAME)|| string.IsNullOrEmpty(columnDescription))なら
、{
($ "ヘッダー{rawHeader}無効")新しい例外をスローします。
}
戻り(columnName.Trim()、columnDescription.Trim())。
}

プライベートBOOL IsEndRow(IRow行)
{

(行.Cells == nullの?)であればtrueを返します。
(!row.Cells.Any())trueを返す場合は、
IF(string.IsNullOrEmpty(row.Cells [0]?。ToStringメソッド()))がtrueを返します。
falseを返します。
}

IsEndCell(ICELL細胞)BOOLプライベート
{
string.IsNullOrEmpty(セルを.ToString()?)を返します。
}

おすすめ

転載: www.cnblogs.com/xiaohouye/p/11454982.html