精简代码

parent 402df3e5
...@@ -105,64 +105,62 @@ public EpSheet ReadSheet(per_allot allot, string sheetName) ...@@ -105,64 +105,62 @@ public EpSheet ReadSheet(per_allot allot, string sheetName)
using (ExcelPackage package = new ExcelPackage(file)) using (ExcelPackage package = new ExcelPackage(file))
{ {
foreach (var sheet in package.Workbook.Worksheets) var sheet = package.Workbook.Worksheets.FirstOrDefault(w => w.Name == sheetName);
{ if (sheet == null) return null;
if (sheet.Name != sheetName) continue;
IEnumerable<EpMerge> mergeCells = GetMergeCells(sheet); IEnumerable<EpMerge> mergeCells = GetMergeCells(sheet);
List<double> colWidths = GetColWidths(sheet); List<double> colWidths = GetColWidths(sheet);
#region data #region data
List<Dictionary<string, object>> datas = new List<Dictionary<string, object>>(); List<Dictionary<string, object>> datas = new List<Dictionary<string, object>>();
List<EpCellClass> cells = new List<EpCellClass>(); List<EpCellClass> cells = new List<EpCellClass>();
List<EpColumn> renders = new List<EpColumn>(); List<EpColumn> renders = new List<EpColumn>();
for (int row = 1, n = sheet.Dimension.End.Row; row <= n; row++)
{
Dictionary<string, object> data = new Dictionary<string, object>();
for (int row = 1, n = sheet.Dimension.End.Row; row <= n; row++) for (int col = 1, k = sheet.Dimension.End.Column; col <= k; col++)
{ {
Dictionary<string, object> data = new Dictionary<string, object>(); var cell = sheet.Cells[row, col];
if (cell == null) continue;
for (int col = 1, k = sheet.Dimension.End.Column; col <= k; col++) var value = GetCellValue(cell);
{ var colName = Regex.Replace(cell.Address, "[0-9]", "", RegexOptions.IgnoreCase);
var cell = sheet.Cells[row, col]; data.Add(colName, value);
if (cell == null) continue;
var value = GetCellValue(cell);
var colName = Regex.Replace(cell.Address, "[0-9]", "", RegexOptions.IgnoreCase);
data.Add(colName, value);
var cellStyle = GetCellClass(cell, row, col);
if (cellStyle != null)
cells.Add(cellStyle);
var render = GetCellRender(cell, row, col);
if (render != null)
renders.Add(render);
}
datas.Add(data);
}
#endregion
SheetType sheetType = _sheetService.GetSheetType(sheet.Name); var cellStyle = GetCellClass(cell, row, col);
var handler = PerSheetDataFactory.GetDataRead(sheetType); if (cellStyle != null)
cells.Add(cellStyle);
EpSheet epSheet = new EpSheet() var render = GetCellRender(cell, row, col);
{ if (render != null)
fixedColumnsLeft = handler?.Point.DataFirstCellNum ?? 0, renders.Add(render);
fixedRowsTop = handler?.Point.DataFirstRowNum ?? 0, }
cell = cells, datas.Add(data);
colWidths = colWidths,
data = datas,
renders = renders,
mergeCells = mergeCells,
};
_cache.Set(key, epSheet, absoluteExpirationRelativeToNow);
return epSheet;
} }
#endregion
SheetType sheetType = _sheetService.GetSheetType(sheet.Name);
var handler = PerSheetDataFactory.GetDataRead(sheetType);
EpSheet epSheet = new EpSheet()
{
fixedColumnsLeft = handler?.Point.DataFirstCellNum ?? 0,
fixedRowsTop = handler?.Point.DataFirstRowNum ?? 0,
cell = cells,
colWidths = colWidths,
data = datas,
renders = renders,
mergeCells = mergeCells,
};
_cache.Set(key, epSheet, absoluteExpirationRelativeToNow);
return epSheet;
} }
return null;
} }
#region #region
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment