Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
doc_wei
Skyeye
提交
d8d5a97d
S
Skyeye
项目概览
doc_wei
/
Skyeye
通知
1172
Star
154
Fork
127
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Skyeye
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d8d5a97d
编写于
12月 24, 2018
作者:
doc_wei
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加导出工具
上级
73e6cec2
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
734 addition
and
0 deletion
+734
-0
logs/skyeye.log
logs/skyeye.log
+441
-0
skyeye-promote/pom.xml
skyeye-promote/pom.xml
+18
-0
skyeye-promote/src/main/java/com/skyeye/common/util/ExcelUtil.java
...omote/src/main/java/com/skyeye/common/util/ExcelUtil.java
+130
-0
skyeye-promote/src/main/java/com/skyeye/common/util/PDFReport.java
...omote/src/main/java/com/skyeye/common/util/PDFReport.java
+145
-0
未找到文件。
logs/skyeye.log
浏览文件 @
d8d5a97d
此差异已折叠。
点击以展开。
skyeye-promote/pom.xml
浏览文件 @
d8d5a97d
...
...
@@ -307,6 +307,24 @@
<version>
${aliyun.java.sdk.dysmsapi.version}
</version>
</dependency>
<!-- pdf导出jar -->
<!-- https://mvnrepository.com/artifact/com.lowagie/itext -->
<dependency>
<groupId>
com.lowagie
</groupId>
<artifactId>
itext
</artifactId>
<version>
4.2.2
</version>
</dependency>
<dependency>
<groupId>
com.itextpdf
</groupId>
<artifactId>
itext-asian
</artifactId>
<version>
5.2.0
</version>
</dependency>
<dependency>
<groupId>
com.itextpdf
</groupId>
<artifactId>
itextpdf
</artifactId>
<version>
5.4.3
</version>
</dependency>
</dependencies>
<build>
...
...
skyeye-promote/src/main/java/com/skyeye/common/util/ExcelUtil.java
0 → 100644
浏览文件 @
d8d5a97d
package
com.skyeye.common.util
;
import
java.io.BufferedInputStream
;
import
java.io.BufferedOutputStream
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.Font
;
import
org.apache.poi.ss.usermodel.IndexedColors
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.usermodel.Workbook
;
public
class
ExcelUtil
{
/**
* 创建excel文档,
* @param list 数据
* @param keys list中map的key数组集合
* @param columnNames excel的列名
* @throws Exception
* */
@SuppressWarnings
(
"resource"
)
public
static
void
createWorkBook
(
String
fileName
,
String
sheetName
,
List
<
Map
<
String
,
Object
>>
list
,
String
[]
keys
,
String
columnNames
[],
HttpServletResponse
response
)
throws
Exception
{
// 创建excel工作簿
Workbook
wb
=
new
HSSFWorkbook
();
// 创建第一个sheet(页),并命名
Sheet
sheet
=
wb
.
createSheet
(
sheetName
);
// 手动设置列宽。第一个参数表示要为第几列设;,第二个参数表示列的宽度,n为列高的像素数。
for
(
int
i
=
0
;
i
<
keys
.
length
;
i
++){
sheet
.
setColumnWidth
((
short
)
i
,
(
short
)
(
35.7
*
150
));
}
// 创建第一行
Row
row
=
sheet
.
createRow
((
short
)
0
);
// 创建两种单元格格式
CellStyle
cs
=
wb
.
createCellStyle
();
CellStyle
cs2
=
wb
.
createCellStyle
();
// 创建两种字体
Font
f
=
wb
.
createFont
();
Font
f2
=
wb
.
createFont
();
// 创建第一种字体样式(用于列名)
f
.
setFontHeightInPoints
((
short
)
10
);
f
.
setColor
(
IndexedColors
.
BLACK
.
getIndex
());
f
.
setBoldweight
(
Font
.
BOLDWEIGHT_BOLD
);
// 创建第二种字体样式(用于值)
f2
.
setFontHeightInPoints
((
short
)
10
);
f2
.
setColor
(
IndexedColors
.
BLACK
.
getIndex
());
// 设置第一种单元格的样式(用于列名)
cs
.
setFont
(
f
);
cs
.
setBorderLeft
(
CellStyle
.
BORDER_THIN
);
cs
.
setBorderRight
(
CellStyle
.
BORDER_THIN
);
cs
.
setBorderTop
(
CellStyle
.
BORDER_THIN
);
cs
.
setBorderBottom
(
CellStyle
.
BORDER_THIN
);
cs
.
setAlignment
(
CellStyle
.
ALIGN_CENTER
);
// 设置第二种单元格的样式(用于值)
cs2
.
setFont
(
f2
);
cs2
.
setBorderLeft
(
CellStyle
.
BORDER_THIN
);
cs2
.
setBorderRight
(
CellStyle
.
BORDER_THIN
);
cs2
.
setBorderTop
(
CellStyle
.
BORDER_THIN
);
cs2
.
setBorderBottom
(
CellStyle
.
BORDER_THIN
);
cs2
.
setAlignment
(
CellStyle
.
ALIGN_CENTER
);
//设置列名
for
(
int
i
=
0
;
i
<
columnNames
.
length
;
i
++){
Cell
cell
=
row
.
createCell
(
i
);
cell
.
setCellValue
(
columnNames
[
i
]);
cell
.
setCellStyle
(
cs
);
}
//设置每行每列的值
for
(
short
i
=
0
;
i
<
list
.
size
();
i
++)
{
// Row 行,Cell 方格 , Row 和 Cell 都是从0开始计数的
// 创建一行,在页sheet上
Row
row1
=
sheet
.
createRow
((
short
)
(
i
+
1
));
// 在row行上创建一个方格
for
(
short
j
=
0
;
j
<
keys
.
length
;
j
++){
Cell
cell
=
row1
.
createCell
(
j
);
cell
.
setCellValue
(
list
.
get
(
i
).
get
(
keys
[
j
])
==
null
?
" "
:
list
.
get
(
i
).
get
(
keys
[
j
]).
toString
());
cell
.
setCellStyle
(
cs2
);
}
}
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
try
{
wb
.
write
(
os
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
byte
[]
content
=
os
.
toByteArray
();
InputStream
is
=
new
ByteArrayInputStream
(
content
);
// 设置response参数,可以打开下载页面
response
.
reset
();
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
((
fileName
+
".xls"
).
getBytes
(),
"iso-8859-1"
));
ServletOutputStream
out
=
response
.
getOutputStream
();
BufferedInputStream
bis
=
null
;
BufferedOutputStream
bos
=
null
;
try
{
bis
=
new
BufferedInputStream
(
is
);
bos
=
new
BufferedOutputStream
(
out
);
byte
[]
buff
=
new
byte
[
2048
];
int
bytesRead
;
while
(-
1
!=
(
bytesRead
=
bis
.
read
(
buff
,
0
,
buff
.
length
)))
{
bos
.
write
(
buff
,
0
,
bytesRead
);
}
}
catch
(
final
IOException
e
)
{
throw
e
;
}
finally
{
if
(
bis
!=
null
)
bis
.
close
();
if
(
bos
!=
null
)
bos
.
close
();
}
}
}
skyeye-promote/src/main/java/com/skyeye/common/util/PDFReport.java
0 → 100644
浏览文件 @
d8d5a97d
package
com.skyeye.common.util
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
com.itextpdf.text.Document
;
import
com.itextpdf.text.Element
;
import
com.itextpdf.text.Font
;
import
com.itextpdf.text.PageSize
;
import
com.itextpdf.text.Phrase
;
import
com.itextpdf.text.pdf.BaseFont
;
import
com.itextpdf.text.pdf.PdfPCell
;
import
com.itextpdf.text.pdf.PdfPTable
;
import
com.itextpdf.text.pdf.PdfWriter
;
public
class
PDFReport
{
Document
document
=
new
Document
();
// 建立一个Document对象
private
static
Font
keyfont
;
// 设置字体大小
private
static
Font
textfont
;
// 设置字体大小
static
{
BaseFont
bfChinese
;
try
{
bfChinese
=
BaseFont
.
createFont
(
"STSong-Light"
,
"UniGB-UCS2-H"
,
BaseFont
.
NOT_EMBEDDED
);
new
Font
(
bfChinese
,
10
,
Font
.
BOLD
);
keyfont
=
new
Font
(
bfChinese
,
8
,
Font
.
BOLD
);
// 设置字体大小
textfont
=
new
Font
(
bfChinese
,
8
,
Font
.
NORMAL
);
// 设置字体大小
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
PDFReport
(
File
file
)
{
document
.
setPageSize
(
PageSize
.
A4
);
// 设置页面大小
try
{
PdfWriter
.
getInstance
(
document
,
new
FileOutputStream
(
file
));
document
.
open
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
int
maxWidth
=
520
;
public
PdfPCell
createCell
(
String
value
,
com
.
itextpdf
.
text
.
Font
font
,
int
align
)
{
PdfPCell
cell
=
new
PdfPCell
();
cell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
cell
.
setHorizontalAlignment
(
align
);
cell
.
setPhrase
(
new
Phrase
(
value
,
font
));
return
cell
;
}
public
PdfPCell
createCell
(
String
value
,
com
.
itextpdf
.
text
.
Font
font
)
{
PdfPCell
cell
=
new
PdfPCell
();
cell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
cell
.
setHorizontalAlignment
(
Element
.
ALIGN_CENTER
);
cell
.
setPhrase
(
new
Phrase
(
value
,
font
));
return
cell
;
}
public
PdfPCell
createCell
(
String
value
,
com
.
itextpdf
.
text
.
Font
font
,
int
align
,
int
colspan
)
{
PdfPCell
cell
=
new
PdfPCell
();
cell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
cell
.
setHorizontalAlignment
(
align
);
cell
.
setColspan
(
colspan
);
cell
.
setPhrase
(
new
Phrase
(
value
,
font
));
return
cell
;
}
public
PdfPCell
createCell
(
String
value
,
com
.
itextpdf
.
text
.
Font
font
,
int
align
,
int
colspan
,
boolean
boderFlag
)
{
PdfPCell
cell
=
new
PdfPCell
();
cell
.
setVerticalAlignment
(
Element
.
ALIGN_MIDDLE
);
cell
.
setHorizontalAlignment
(
align
);
cell
.
setColspan
(
colspan
);
cell
.
setPhrase
(
new
Phrase
(
value
,
font
));
cell
.
setPadding
(
3.0f
);
if
(!
boderFlag
)
{
cell
.
setBorder
(
0
);
cell
.
setPaddingTop
(
15.0f
);
cell
.
setPaddingBottom
(
8.0f
);
}
return
cell
;
}
public
PdfPTable
createTable
(
int
colNumber
)
{
PdfPTable
table
=
new
PdfPTable
(
colNumber
);
try
{
table
.
setTotalWidth
(
maxWidth
);
table
.
setLockedWidth
(
true
);
table
.
setHorizontalAlignment
(
Element
.
ALIGN_CENTER
);
table
.
getDefaultCell
().
setBorder
(
1
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
table
;
}
public
PdfPTable
createTable
(
float
[]
widths
)
{
PdfPTable
table
=
new
PdfPTable
(
widths
);
try
{
table
.
setTotalWidth
(
maxWidth
);
table
.
setLockedWidth
(
true
);
table
.
setHorizontalAlignment
(
Element
.
ALIGN_CENTER
);
table
.
getDefaultCell
().
setBorder
(
1
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
table
;
}
public
PdfPTable
createBlankTable
()
{
PdfPTable
table
=
new
PdfPTable
(
1
);
table
.
getDefaultCell
().
setBorder
(
0
);
table
.
addCell
(
createCell
(
""
,
keyfont
));
table
.
setSpacingAfter
(
20.0f
);
table
.
setSpacingBefore
(
20.0f
);
return
table
;
}
public
void
generatePDF
()
throws
Exception
{
PdfPTable
table
=
createTable
(
4
);
table
.
addCell
(
createCell
(
"学生信息列表:"
,
keyfont
,
Element
.
ALIGN_LEFT
,
4
,
false
));
table
.
addCell
(
createCell
(
"姓名"
,
keyfont
,
Element
.
ALIGN_CENTER
));
table
.
addCell
(
createCell
(
"年龄"
,
keyfont
,
Element
.
ALIGN_CENTER
));
table
.
addCell
(
createCell
(
"性别"
,
keyfont
,
Element
.
ALIGN_CENTER
));
table
.
addCell
(
createCell
(
"住址"
,
keyfont
,
Element
.
ALIGN_CENTER
));
for
(
int
i
=
0
;
i
<
5
;
i
++)
{
table
.
addCell
(
createCell
(
"姓名"
+
i
,
textfont
));
table
.
addCell
(
createCell
(
i
+
15
+
""
,
textfont
));
table
.
addCell
(
createCell
((
i
%
2
==
0
)
?
"男"
:
"女"
,
textfont
));
table
.
addCell
(
createCell
(
"地址"
+
i
,
textfont
));
}
document
.
add
(
table
);
document
.
close
();
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
File
file
=
new
File
(
"D:\\text.pdf"
);
file
.
createNewFile
();
new
PDFReport
(
file
).
generatePDF
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录