Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangxinjiang
yifu-mvp
Commits
1e7edc13
Commit
1e7edc13
authored
Dec 12, 2024
by
fangxinjiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
excel to image -fxj
parent
34f652a7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
242 additions
and
145 deletions
+242
-145
CommonConstants.java
...ud/plus/v1/yifu/common/core/constant/CommonConstants.java
+2
-0
SocialHandleSearchVo.java
...fu/cloud/plus/v1/yifu/social/vo/SocialHandleSearchVo.java
+8
-0
pom.xml
yifu-social/yifu-social-biz/pom.xml
+1
-16
TDispatchInfoServiceImpl.java
...v1/yifu/social/service/impl/TDispatchInfoServiceImpl.java
+176
-42
ExcelMergeImage.java
.../yifu/cloud/plus/v1/yifu/social/util/ExcelMergeImage.java
+31
-80
ExcelToImage.java
...com/yifu/cloud/plus/v1/yifu/social/util/ExcelToImage.java
+13
-2
TDispatchInfoMapper.xml
...ial-biz/src/main/resources/mapper/TDispatchInfoMapper.xml
+11
-5
No files found.
yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/constant/CommonConstants.java
View file @
1e7edc13
...
...
@@ -632,4 +632,6 @@ public interface CommonConstants {
List
<
String
>
socialInfoStatus
=
Stream
.
of
(
"1"
,
"3"
,
"5"
,
"7"
).
collect
(
Collectors
.
toList
());
String
USER_DIR
=
"user.dir"
;
String
DOUBLE_LINE
=
"//"
;
}
yifu-social/yifu-social-api/src/main/java/com/yifu/cloud/plus/v1/yifu/social/vo/SocialHandleSearchVo.java
View file @
1e7edc13
...
...
@@ -153,4 +153,12 @@ public class SocialHandleSearchVo extends TDispatchInfo {
@Schema
(
description
=
"社保ID"
)
@ExcelIgnore
private
String
socialId
;
/**
* 税友自动化办理,此标识区分于页面的导出功能,值为1 时 默认取值派单审核通过 且 未办理的派单数据
*/
@ExcelAttribute
(
name
=
"税友自动化办理"
)
@ExcelIgnore
@Schema
(
description
=
"税友自动化办理"
)
private
String
syFlag
;
}
yifu-social/yifu-social-biz/pom.xml
View file @
1e7edc13
...
...
@@ -99,22 +99,7 @@
<version>
1.0.0
</version>
</dependency>
<!-- Apache POI -->
<dependency>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi
</artifactId>
<version>
5.2.3
</version>
<!-- 使用最新版本 -->
</dependency>
<dependency>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi-ooxml
</artifactId>
<version>
5.2.3
</version>
</dependency>
<dependency>
<groupId>
commons-io
</groupId>
<artifactId>
commons-io
</artifactId>
<version>
2.12.0
</version>
</dependency>
<!-- excel to image -->
<dependency>
<groupId>
spire.xls
</groupId>
<artifactId>
spire.xls
</artifactId>
...
...
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/service/impl/TDispatchInfoServiceImpl.java
View file @
1e7edc13
This diff is collapsed.
Click to expand it.
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/util/ExcelMergeImage.java
View file @
1e7edc13
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
social
.
util
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
lombok.extern.log4j.Log4j2
;
import
org.apache.commons.compress.utils.IOUtils
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.stereotype.Component
;
import
javax.imageio.ImageIO
;
import
java.awt.Color
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
import
java.io.*
;
import
java.io.FileInputStream
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
/**
* @Author fxj
...
...
@@ -18,74 +18,10 @@ import java.io.*;
* @Description
* @Version 1.0
*/
@Log4j2
@Component
public
class
ExcelMergeImage
{
public
static
void
main
(
String
[]
args
)
throws
IOException
{
String
excelFilePath
=
"E:\\test\\11\\1.xls"
;
String
imageFilePath
=
"E:\\test\\11\\1.png"
;
//convertExcelToImage(excelFilePath, imageFilePath);
//stampAdder();
}
public
static
void
convertExcelToImage
(
String
excelFilePath
,
String
imageFilePath
)
throws
IOException
{
FileInputStream
fis
=
new
FileInputStream
(
new
File
(
excelFilePath
));
Workbook
workbook
;
if
(
excelFilePath
.
endsWith
(
".xls"
))
{
workbook
=
new
HSSFWorkbook
(
fis
);
// For Excel 97-2003 (.xls) format
}
else
if
(
excelFilePath
.
endsWith
(
".xlsx"
))
{
workbook
=
new
XSSFWorkbook
(
fis
);
// For Excel 2007 and later (.xlsx) format
}
else
{
throw
new
IllegalArgumentException
(
"Unsupported file type"
);
}
Sheet
sheet
=
workbook
.
getSheetAt
(
0
);
int
rowCount
=
16
;
//sheet.getPhysicalNumberOfRows();
int
colCount
=
25
;
//sheet.getRow(0).getPhysicalNumberOfCells();
BufferedImage
image
=
new
BufferedImage
(
896
,
424
,
BufferedImage
.
TYPE_INT_RGB
);
Graphics2D
graphics
=
image
.
createGraphics
();
for
(
int
i
=
0
;
i
<
rowCount
;
i
++)
{
Row
row
=
sheet
.
getRow
(
i
);
for
(
int
j
=
0
;
j
<
colCount
;
j
++)
{
Cell
cell
=
row
.
getCell
(
j
);
if
(
cell
!=
null
)
{
graphics
.
fillRect
(
j
*
150
,
i
*
47
,
896
,
424
);
graphics
.
setColor
(
Color
.
black
);
// 设置边框颜色
graphics
.
drawRect
(
j
*
150
,
i
*
47
,
896
,
424
);
String
cellValue
=
getCellValueAsString
(
cell
);
graphics
.
drawString
(
cellValue
,
j
*
150
+
10
,
i
*
45
+
30
);
}
}
}
graphics
.
dispose
();
ImageIO
.
write
(
image
,
"png"
,
new
File
(
imageFilePath
));
workbook
.
close
();
fis
.
close
();
}
private
static
String
getCellValueAsString
(
Cell
cell
)
{
String
cellValue
=
""
;
if
(
cell
!=
null
)
{
switch
(
cell
.
getCellType
())
{
case
STRING:
cellValue
=
cell
.
getStringCellValue
();
break
;
case
NUMERIC:
cellValue
=
String
.
valueOf
(
cell
.
getNumericCellValue
());
break
;
case
BOOLEAN:
cellValue
=
String
.
valueOf
(
cell
.
getBooleanCellValue
());
break
;
case
FORMULA:
cellValue
=
cell
.
getCellFormula
();
break
;
default
:
cellValue
=
""
;
}
}
return
cellValue
;
}
/**
* @Author fxj
* @Description 03格式excel添加电子印章或图片
...
...
@@ -93,10 +29,10 @@ public class ExcelMergeImage {
* @Param
* @return
**/
public
FileOutputStream
addPictureToExcel
(
FileInputStream
fis
,
public
void
addPictureToExcel
(
FileInputStream
fis
,
InputStream
imageIs
,
FileOutputStream
fileOut
,
int
SheetNum
){
int
SheetNum
,
String
type
){
Workbook
workbook
=
null
;
try
{
workbook
=
new
HSSFWorkbook
(
fis
);
...
...
@@ -107,14 +43,24 @@ public class ExcelMergeImage {
ClientAnchor
anchor
=
helper
.
createClientAnchor
();
anchor
.
setCol1
(
2
);
anchor
.
setRow1
(
0
);
// 按花名册类型特殊处理对应印章的效果
if
(
CommonConstants
.
TWO_STRING
.
equals
(
type
)){
anchor
.
setCol2
(
5
);
anchor
.
setRow2
(
6
);
}
else
if
(
CommonConstants
.
FOUR_STRING
.
equals
(
type
)
||
CommonConstants
.
THREE_STRING
.
equals
(
type
)){
anchor
.
setCol2
(
5
);
anchor
.
setRow2
(
8
);
}
else
{
anchor
.
setCol2
(
4
);
anchor
.
setRow2
(
7
);
}
// 添加印章图片
int
pictureIdx
=
workbook
.
addPicture
(
IOUtils
.
toByteArray
(
imageIs
),
Workbook
.
PICTURE_TYPE_PNG
);
drawing
.
createPicture
(
anchor
,
pictureIdx
);
workbook
.
write
(
fileOut
);
}
catch
(
Exception
e
){
e
.
printStackTrace
(
);
log
.
error
(
"excel插入电子印章异常:{}"
,
e
.
getMessage
()
);
}
finally
{
try
{
if
(
null
!=
fis
){
...
...
@@ -123,10 +69,15 @@ public class ExcelMergeImage {
if
(
null
!=
workbook
){
workbook
.
close
();
}
if
(
null
!=
imageIs
){
imageIs
.
close
();
}
if
(
null
!=
fileOut
){
fileOut
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
fileOut
;
}
}
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/util/ExcelToImage.java
View file @
1e7edc13
...
...
@@ -6,9 +6,11 @@ import com.spire.xls.Worksheet;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.OSSUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
groovyjarjarpicocli.CommandLine
;
import
org.springframework.stereotype.Component
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URL
;
...
...
@@ -22,7 +24,10 @@ import java.net.URL;
public
class
ExcelToImage
{
public
R
<
URL
>
excelToImg
(
InputStream
inputStream
,
OSSUtil
ossUtil
){
String
projectRoot
=
System
.
getProperty
(
"user.dir"
);
if
(
null
==
inputStream
||
null
==
ossUtil
){
return
R
.
failed
(
CommonConstants
.
RESULT_DATA_FAIL
+
":带印章excel生成图片传参异常"
);
}
String
projectRoot
=
System
.
getProperty
(
CommonConstants
.
USER_DIR
);
//加载Excel工作表
Workbook
wb
=
new
Workbook
();
wb
.
loadFromHtml
(
inputStream
);
...
...
@@ -42,12 +47,18 @@ public class ExcelToImage {
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
R
.
failed
(
CommonConstants
.
RESULT_DATA_FAIL
+
":ExcelToImage转换异常-"
+
e
.
getMessage
());
}
finally
{
if
(
file
.
exists
()){
file
.
delete
();
}
if
(
null
!=
inputStream
){
try
{
inputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
R
.
failed
(
CommonConstants
.
RESULT_DATA_FAIL
);
//调用方法,将指定Excel单元格数据范围保存为图片
...
...
yifu-social/yifu-social-biz/src/main/resources/mapper/TDispatchInfoMapper.xml
View file @
1e7edc13
...
...
@@ -2260,10 +2260,12 @@
a.DELETE_FLAG = 0
AND a.social_id is not null
<if
test=
'tDispatchInfo.socialId != null and tDispatchInfo.socialId.trim() == "0" '
>
AND a.social_id = #{tDispatchInfo.socialId}
<if
test=
"tDispatchInfo.socialId != null and tDispatchInfo.socialId.trim() != ''"
>
AND a.SOCIAL_ID = #{tDispatchInfo.socialId}
</if>
<if
test=
"tDispatchInfo.syFlag != null and tDispatchInfo.syFlag.trim() == '1'"
>
AND a.STATUS = '2'
</if>
<!-- dispatch-status 未提交1待审核2审核通过3审核不通过4办理完成5待SSC审核 -->
<if
test=
'tDispatchInfo.auditStatus != null and tDispatchInfo.auditStatus.trim() == "0" '
>
AND a.STATUS in ('2','4')
...
...
@@ -2360,9 +2362,13 @@
<sql
id=
"where_getSocialPersionDisRecord"
>
a.DELETE_FLAG = 0
AND a.social_id is not null
<if
test=
'tDispatchInfo.socialId != null and tDispatchInfo.socialId.trim() == "0" '
>
AND a.
social_id
= #{tDispatchInfo.socialId}
<if
test=
"tDispatchInfo.socialId != null and tDispatchInfo.socialId.trim() != ''"
>
AND a.
SOCIAL_ID
= #{tDispatchInfo.socialId}
</if>
<if
test=
"tDispatchInfo.syFlag != null and tDispatchInfo.syFlag.trim() == '1'"
>
AND a.STATUS = '2'
</if>
<!-- dispatch-status 未提交1待审核2审核通过3审核不通过4办理完成5待SSC审核 -->
<if
test=
'tDispatchInfo.auditStatus != null and tDispatchInfo.auditStatus.trim() == "0"'
>
AND a.STATUS in ('2','4')
...
...
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