Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
performance
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zry
performance
Commits
313858af
Commit
313858af
authored
Oct 30, 2020
by
lcx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
抽取数据为数值,录取获取数据时异常
parent
a5f1dd1c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
76 additions
and
14 deletions
+76
-14
performance/Performance.Services/CollectService.cs
+1
-1
performance/Performance.Services/DFExtractService.cs
+75
-13
No files found.
performance/Performance.Services/CollectService.cs
View file @
313858af
...
@@ -300,7 +300,7 @@ public HandsonTable GetCollectData(int userId, int allotId, string sheetName)
...
@@ -300,7 +300,7 @@ public HandsonTable GetCollectData(int userId, int allotId, string sheetName)
if
(
sheet
==
null
)
if
(
sheet
==
null
)
throw
new
PerformanceException
(
"找不到当前SHEET页信息"
);
throw
new
PerformanceException
(
"找不到当前SHEET页信息"
);
var
headers
=
perforImheaderRepository
.
GetEntities
(
w
=>
w
.
SheetID
==
sheet
.
ID
).
OrderBy
(
w
=>
w
.
PointCell
);
var
headers
=
perforImheaderRepository
.
GetEntities
(
w
=>
w
.
SheetID
==
sheet
.
ID
)
?
.
OrderBy
(
w
=>
w
.
PointCell
);
if
(
headers
==
null
||
!
headers
.
Any
())
if
(
headers
==
null
||
!
headers
.
Any
())
throw
new
PerformanceException
(
"SHEET页没有有效列头"
);
throw
new
PerformanceException
(
"SHEET页没有有效列头"
);
var
cols
=
headers
.
Select
(
w
=>
w
.
CellValue
).
ToArray
();
var
cols
=
headers
.
Select
(
w
=>
w
.
CellValue
).
ToArray
();
...
...
performance/Performance.Services/DFExtractService.cs
View file @
313858af
...
@@ -1740,16 +1740,22 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<NewE
...
@@ -1740,16 +1740,22 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<NewE
if
(
newCell
==
null
)
continue
;
if
(
newCell
==
null
)
continue
;
var
value
=
deptData
.
FirstOrDefault
(
t
=>
t
.
Category
==
headName
)?.
Value
;
var
value
=
deptData
.
FirstOrDefault
(
t
=>
t
.
Category
==
headName
)?.
Value
;
if
(!
value
.
HasValue
||
value
==
0
)
{
newCell
.
SetCellType
(
CellType
.
String
);
var
oldvalue
=
ConvertHelper
.
To
<
decimal
>(
newCell
.
StringCellValue
);
if
(
oldvalue
>
0
)
continue
;
}
if
(
isIncom
)
if
(
isIncom
)
{
{
value
=
value
==
0
?
null
:
value
;
value
=
value
==
0
?
null
:
value
;
OutToExcelCell
(
newCell
,
value
);
OutToExcelCell
<
decimal
>
(
newCell
,
value
);
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
else
if
(
newCell
.
CellType
!=
CellType
.
Formula
)
else
if
(
newCell
.
CellType
!=
CellType
.
Formula
)
{
{
value
=
value
==
0
?
null
:
value
;
value
=
value
==
0
?
null
:
value
;
OutToExcelCell
(
newCell
,
value
);
OutToExcelCell
<
decimal
>
(
newCell
,
value
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
...
@@ -1807,15 +1813,21 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<NewE
...
@@ -1807,15 +1813,21 @@ private void WriteSheetData(ISheet sheet, IPerSheetDataRead sheetRead, List<NewE
}
}
else
else
{
{
celldata
=
allExtract
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
&&
t
.
Category
==
headName
);
var
value
=
allExtract
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
&&
t
.
Category
==
headName
)?.
Value
;
if
(!
value
.
HasValue
||
value
==
0
)
{
newCell
.
SetCellType
(
CellType
.
String
);
var
oldvalue
=
ConvertHelper
.
To
<
decimal
>(
newCell
.
StringCellValue
);
if
(
oldvalue
>
0
)
continue
;
}
if
(
isIncom
)
if
(
isIncom
)
{
{
OutToExcelCell
(
newCell
,
celldata
?.
V
alue
);
OutToExcelCell
<
decimal
>(
newCell
,
v
alue
);
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
else
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
else
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
{
{
OutToExcelCell
(
newCell
,
celldata
?.
V
alue
);
OutToExcelCell
<
decimal
>(
newCell
,
v
alue
);
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
}
}
...
@@ -1912,7 +1924,7 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<NewEx
...
@@ -1912,7 +1924,7 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<NewEx
{
{
var
extract
=
deptData
.
FirstOrDefault
(
t
=>
t
.
Category
==
headName
);
var
extract
=
deptData
.
FirstOrDefault
(
t
=>
t
.
Category
==
headName
);
var
value
=
extract
?.
Value
==
0
?
null
:
extract
?.
Value
;
var
value
=
extract
?.
Value
==
0
?
null
:
extract
?.
Value
;
OutToExcelCell
(
newCell
,
value
);
OutToExcelCell
<
decimal
>
(
newCell
,
value
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
...
@@ -1956,7 +1968,7 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<NewEx
...
@@ -1956,7 +1968,7 @@ private void WriteWorkData(ISheet sheet, IPerSheetDataRead sheetRead, List<NewEx
else
else
{
{
var
extract
=
allExtract
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
&&
t
.
Category
==
headName
);
var
extract
=
allExtract
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
&&
t
.
Category
==
headName
);
OutToExcelCell
(
newCell
,
extract
?.
Value
);
OutToExcelCell
<
decimal
>
(
newCell
,
extract
?.
Value
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
...
@@ -2095,13 +2107,13 @@ private void WriteCollectData(ISheet sheet, IPerSheetDataRead sheetRead, List<co
...
@@ -2095,13 +2107,13 @@ private void WriteCollectData(ISheet sheet, IPerSheetDataRead sheetRead, List<co
if
(
isIncom
)
if
(
isIncom
)
{
{
var
cellvalue
=
value
==
"0"
?
null
:
ConvertHelper
.
To
<
decimal
?>(
value
);
var
cellvalue
=
value
==
"0"
?
null
:
ConvertHelper
.
To
<
decimal
?>(
value
);
OutToExcelCell
(
newCell
,
cellvalue
);
OutToExcelCell
<
decimal
>
(
newCell
,
cellvalue
);
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
else
if
(
newCell
.
CellType
!=
CellType
.
Formula
)
else
if
(
newCell
.
CellType
!=
CellType
.
Formula
)
{
{
var
cellvalue
=
value
==
"0"
?
null
:
ConvertHelper
.
To
<
decimal
?>(
value
);
var
cellvalue
=
value
==
"0"
?
null
:
ConvertHelper
.
To
<
decimal
?>(
value
);
OutToExcelCell
(
newCell
,
cellvalue
);
OutToExcelCell
<
decimal
>
(
newCell
,
cellvalue
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
...
@@ -2149,12 +2161,12 @@ private void WriteCollectData(ISheet sheet, IPerSheetDataRead sheetRead, List<co
...
@@ -2149,12 +2161,12 @@ private void WriteCollectData(ISheet sheet, IPerSheetDataRead sheetRead, List<co
var
celldata
=
data
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
.
Department
&&
t
.
AccountingUnitDoctor
==
department
.
AccountingUnitDoctor
&&
t
.
AccountingUnitNurse
==
department
.
AccountingUnitNurse
&&
t
.
AccountingUnitTechnician
==
department
.
AccountingUnitTechnician
&&
t
.
TypeName
==
headName
);
var
celldata
=
data
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
.
Department
&&
t
.
AccountingUnitDoctor
==
department
.
AccountingUnitDoctor
&&
t
.
AccountingUnitNurse
==
department
.
AccountingUnitNurse
&&
t
.
AccountingUnitTechnician
==
department
.
AccountingUnitTechnician
&&
t
.
TypeName
==
headName
);
if
(
isIncom
)
if
(
isIncom
)
{
{
OutToExcelCell
(
newCell
,
celldata
?.
CellValue
);
OutToExcelCell
<
decimal
>
(
newCell
,
celldata
?.
CellValue
);
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
else
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
else
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
{
{
OutToExcelCell
(
newCell
,
celldata
?.
CellValue
);
OutToExcelCell
<
decimal
>
(
newCell
,
celldata
?.
CellValue
);
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
}
}
...
@@ -2239,7 +2251,7 @@ private void WriteCollectWorkData(ISheet sheet, IPerSheetDataRead sheetRead, Lis
...
@@ -2239,7 +2251,7 @@ private void WriteCollectWorkData(ISheet sheet, IPerSheetDataRead sheetRead, Lis
{
{
var
extract
=
deptData
.
FirstOrDefault
(
t
=>
t
.
TypeName
==
headName
);
var
extract
=
deptData
.
FirstOrDefault
(
t
=>
t
.
TypeName
==
headName
);
var
value
=
extract
?.
CellValue
==
"0"
?
null
:
extract
?.
CellValue
;
var
value
=
extract
?.
CellValue
==
"0"
?
null
:
extract
?.
CellValue
;
OutToExcelCell
(
newCell
,
value
);
OutToExcelCell
<
decimal
>
(
newCell
,
value
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
...
@@ -2280,7 +2292,7 @@ private void WriteCollectWorkData(ISheet sheet, IPerSheetDataRead sheetRead, Lis
...
@@ -2280,7 +2292,7 @@ private void WriteCollectWorkData(ISheet sheet, IPerSheetDataRead sheetRead, Lis
else
else
{
{
var
extract
=
celldata
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
&&
t
.
TypeName
==
headName
);
var
extract
=
celldata
.
FirstOrDefault
(
t
=>
t
.
Department
==
department
&&
t
.
TypeName
==
headName
);
OutToExcelCell
(
newCell
,
extract
?.
CellValue
);
OutToExcelCell
<
decimal
>
(
newCell
,
extract
?.
CellValue
);
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
if
(
header
!=
null
&&
header
.
Contains
(
headName
))
newCell
.
CellStyle
=
style
;
newCell
.
CellStyle
=
style
;
}
}
...
@@ -2372,6 +2384,56 @@ public void OutToExcelCell(ICell cell, object obj)
...
@@ -2372,6 +2384,56 @@ public void OutToExcelCell(ICell cell, object obj)
}
}
}
}
public
void
OutToExcelCell
<
T
>(
ICell
cell
,
object
obj
,
T
defaultValue
=
default
)
{
string
value
=
obj
?.
ToString
()
??
""
;
try
{
var
type
=
defaultValue
.
GetType
();
switch
(
type
.
ToString
())
{
case
"System.String"
:
//字符串类型
cell
.
SetCellValue
(
value
);
break
;
case
"System.DateTime"
:
//日期类型
DateTime
dateV
;
DateTime
.
TryParse
(
value
,
out
dateV
);
cell
.
SetCellValue
(
dateV
.
ToString
(
"yyyy/M/d"
));
break
;
case
"System.Boolean"
:
//布尔型
bool
boolV
=
false
;
bool
.
TryParse
(
value
,
out
boolV
);
cell
.
SetCellValue
(
boolV
);
break
;
case
"System.Int16"
:
//整型
case
"System.Int32"
:
case
"System.Int64"
:
case
"System.Byte"
:
int
intV
=
0
;
int
.
TryParse
(
value
,
out
intV
);
cell
.
SetCellValue
(
intV
);
break
;
case
"System.Decimal"
:
//浮点型
case
"System.Double"
:
double
doubV
=
0
;
double
.
TryParse
(
value
,
out
doubV
);
cell
.
SetCellValue
(
doubV
);
break
;
case
"System.DBNull"
:
//空值处理
cell
.
SetCellValue
(
""
);
break
;
default
:
cell
.
SetCellValue
(
""
);
break
;
}
}
catch
{
cell
.
SetCellValue
(
value
);
}
}
#
endregion
#
endregion
#
region
配置校验
#
region
配置校验
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment