Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
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
项目统一框架
amos-boot-biz
Commits
4d2ebb00
Commit
4d2ebb00
authored
May 05, 2023
by
lisong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改车辆里程计算精度bug
parent
0232addb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
146 deletions
+0
-146
SelectedSheetWriteHandler1.java
...t/module/common/api/excel/SelectedSheetWriteHandler1.java
+0
-146
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/SelectedSheetWriteHandler1.java
deleted
100644 → 0
View file @
0232addb
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
com.alibaba.excel.write.handler.SheetWriteHandler
;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
import
com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
org.apache.poi.xssf.usermodel.XSSFDataValidation
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Random
;
/**
* @program: mypro
* @description: todo
* @create: 2022-07-22 13:36
**/
@Data
@AllArgsConstructor
public
class
SelectedSheetWriteHandler
implements
SheetWriteHandler
{
private
final
Map
<
Integer
,
ExcelSelectedResolve
>
selectedMap
;
@Override
public
void
beforeSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
}
@Override
public
void
afterSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
// 这里可以对cell进行任何操作
Sheet
sheet
=
writeSheetHolder
.
getSheet
();
DataValidationHelper
helper
=
sheet
.
getDataValidationHelper
();
String
hiddenName
=
"hidden"
+
System
.
currentTimeMillis
();
//1.创建一个隐藏的sheet 名称为 hidden
Workbook
workbook
=
writeWorkbookHolder
.
getWorkbook
();
Random
random
=
new
Random
();
Sheet
hidden
=
workbook
.
createSheet
(
hiddenName
);
// workbook.setSheetOrder(hiddenName,7);
Name
category1Name
=
workbook
.
createName
();
category1Name
.
setNameName
(
hiddenName
);
selectedMap
.
forEach
((
k
,
v
)
->
{
//下拉框的起始行,结束行,起始列,结束列
CellRangeAddressList
rangeList
=
new
CellRangeAddressList
(
1
,
65536
,
k
,
k
);
//获取excel列名
String
excelLine
=
getExcelLine
(
k
);
//2.循环赋值
String
[]
values
=
v
.
getSource
();
for
(
int
i
=
0
,
length
=
values
.
length
;
i
<
length
;
i
++)
{
// 3:表示你开始的行数 3表示 你开始的列数
Row
row
=
hidden
.
getRow
(
i
);
if
(
row
==
null
)
{
row
=
hidden
.
createRow
(
i
);
}
row
.
createCell
(
k
).
setCellValue
(
values
[
i
]);
}
//4. =hidden!$H:$1:$H$50 sheet为hidden的 H1列开始H50行数据获取下拉数组
String
refers
=
"="
+
hiddenName
+
"!$"
+
excelLine
+
"$1:$"
+
excelLine
+
"$"
+
(
values
.
length
);
//5 将刚才设置的sheet引用到你的下拉列表中
DataValidationConstraint
constraint
=
helper
.
createFormulaListConstraint
(
refers
);
DataValidation
dataValidation
=
helper
.
createValidation
(
constraint
,
rangeList
);
hidden
.
addValidationData
(
dataValidation
);
});
int
hiddenIndex
=
workbook
.
getSheetIndex
(
hidden
);
if
(!
workbook
.
isSheetHidden
(
hiddenIndex
))
{
workbook
.
setSheetHidden
(
hiddenIndex
,
true
);
}
}
/* // 设置下拉列表的行: 首行,末行,首列,末列
CellRangeAddressList rangeList = new CellRangeAddressList(1, 65536, k, k);
if (v.getSource().length > 0){
// 设置下拉列表的值
DataValidationConstraint constraint = helper.createExplicitListConstraint(v.getSource());
// 设置约束
DataValidation validation = helper.createValidation(constraint, rangeList);
// 阻止输入非下拉选项的值
validation.setErrorStyle(DataValidation.ErrorStyle.STOP);
validation.setShowErrorBox(true);
validation.setSuppressDropDownArrow(true);
validation.createErrorBox("提示", "请输入下拉选项中的内容");
sheet.addValidationData(validation);*/
/* //定义sheet的名称
//1.创建一个隐藏的sheet 名称为 hidden + k+随机数防止数据过多造成的名字重复
Random random = new Random();
String sheetName = "hidden"+k+random.nextInt(1000);
Workbook workbook = writeWorkbookHolder.getWorkbook();
Sheet hiddenSheet = workbook.createSheet(sheetName);
for (int i = 0, length = v.getSource().length; i < length; i++) {
// 开始的行数i,列数k
hiddenSheet.createRow(i).createCell(k).setCellValue(v.getSource()[i]);
}
Name category1Name = workbook.createName();
category1Name.setNameName(sheetName);
String excelLine = getExcelLine(k);
// =hidden!$H:$1:$H$50 sheet为hidden的 H1列开始H50行数据获取下拉数组
String refers = "=" + sheetName + "!$" + excelLine + "$1:$" + excelLine + "$" + (v.getSource().length + 1);
// 将刚才设置的sheet引用到你的下拉列表中
DataValidationConstraint constraint = helper.createFormulaListConstraint(refers);
DataValidation dataValidation = helper.createValidation(constraint, rangeList);
if(dataValidation instanceof XSSFDataValidation){
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setShowErrorBox(true);
}else{
dataValidation.setSuppressDropDownArrow(false);
}
sheet.addValidationData(dataValidation);
// 设置存储下拉列值得sheet为隐藏
int hiddenIndex = workbook.getSheetIndex(sheetName);
if (!workbook.isSheetHidden(hiddenIndex)) {
workbook.setSheetHidden(hiddenIndex, true);
}
}
});
}*/
/**
* 返回excel列标A-Z-AA-ZZ
*
* @param num 列数
* @return java.lang.String
*/
private
String
getExcelLine
(
int
num
)
{
String
line
=
""
;
int
first
=
num
/
26
;
int
second
=
num
%
26
;
if
(
first
>
0
)
{
line
=
(
char
)
(
'A'
+
first
-
1
)
+
""
;
}
line
+=
(
char
)
(
'A'
+
second
)
+
""
;
return
line
;
}
}
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