功能迭代-Excel报表导出PDF-增加样式-2(加删除线、水平对齐、垂直对齐)

chenxg 1 year ago
parent 5d1384e97e
commit 67beae402c

@ -243,7 +243,7 @@ public class ReportExcelServiceImpl implements ReportExcelService {
ReportExcelStyleDto reportExcelStyleDto = reportExcelStyleList.get(0).get(i); ReportExcelStyleDto reportExcelStyleDto = reportExcelStyleList.get(0).get(i);
if(!Objects.isNull(reportExcelStyleDto)) if(!Objects.isNull(reportExcelStyleDto))
{ {
processCellStyle(reportExcelStyleDto,tableCell); processCellStyle(reportExcelStyleDto,tableCell,font);
} }
table.addCell(tableCell); table.addCell(tableCell);
} }
@ -265,7 +265,7 @@ public class ReportExcelServiceImpl implements ReportExcelService {
ReportExcelStyleDto reportExcelStyleDto = reportExcelStyleList.get(i).get(j); ReportExcelStyleDto reportExcelStyleDto = reportExcelStyleList.get(i).get(j);
if(!Objects.isNull(reportExcelStyleDto)) if(!Objects.isNull(reportExcelStyleDto))
{ {
processCellStyle(reportExcelStyleDto,tableCell); processCellStyle(reportExcelStyleDto,tableCell,font);
} }
table.addCell(tableCell); table.addCell(tableCell);
} }
@ -293,27 +293,31 @@ public class ReportExcelServiceImpl implements ReportExcelService {
* pdf * pdf
* @param tableCell * @param tableCell
*/ */
public void processCellStyle(ReportExcelStyleDto reportExcelStyleDto,PdfPCell tableCell) public void processCellStyle(ReportExcelStyleDto reportExcelStyleDto,PdfPCell tableCell,Font font)
{ {
//处理单元格背景颜色 // 处理单元格背景颜色
String bg = reportExcelStyleDto.getBg(); String bg = reportExcelStyleDto.getBg();
java.awt.Color color = null; java.awt.Color color = null;
if(!Objects.isNull(bg)) if(!Objects.isNull(bg))
{ {
color = java.awt.Color.decode(bg); color = parseRGB(bg);
tableCell.setBackgroundColor(new BaseColor(color.getRed(), color.getGreen(), color.getBlue())); tableCell.setBackgroundColor(new BaseColor(color.getRed(), color.getGreen(), color.getBlue()));
} }
//处理字体 // 处理字体
String fc = reportExcelStyleDto.getFc(); String fc = reportExcelStyleDto.getFc();
Integer fs = reportExcelStyleDto.getFs(); Integer fs = reportExcelStyleDto.getFs();
String ff = reportExcelStyleDto.getFf(); String ff = reportExcelStyleDto.getFf();
Boolean bl = reportExcelStyleDto.isBl(); Boolean bl = reportExcelStyleDto.isBl();
Boolean it = reportExcelStyleDto.isIt(); Boolean it = reportExcelStyleDto.isIt();
Font font = new Font(); Boolean cl = reportExcelStyleDto.isCl();
Integer ht = reportExcelStyleDto.getHt();
Integer vt = reportExcelStyleDto.getVt();
// 设置字体颜色 // 设置字体颜色
if(!Objects.isNull(fc)) if(!Objects.isNull(fc))
{ {
color = java.awt.Color.decode(fc); color = parseRGB(fc);
font.setColor(new BaseColor(color.getRed(), color.getGreen(), color.getBlue())); font.setColor(new BaseColor(color.getRed(), color.getGreen(), color.getBlue()));
} }
// 设置字体 // 设置字体
@ -341,6 +345,61 @@ public class ReportExcelServiceImpl implements ReportExcelService {
{ {
font.setStyle(Font.BOLDITALIC); font.setStyle(Font.BOLDITALIC);
} }
// 是否删除线
if(Objects.equals(Boolean.TRUE,cl))
{
// 如果是粗体且斜体
if (font.getStyle() == Font.BOLDITALIC)
{
font.setStyle(Font.BOLDITALIC | Font.STRIKETHRU);
}
// 如果是粗体
else if(font.getStyle() == Font.BOLD)
{
font.setStyle(Font.BOLDITALIC | Font.STRIKETHRU);
}
// 如果是斜体
else if(font.getStyle() == Font.ITALIC)
{
font.setStyle(Font.BOLDITALIC | Font.STRIKETHRU);
}
else
{
font.setStyle(Font.STRIKETHRU);
}
}
// 水平对齐
if(!Objects.isNull(ht))
{
if(Objects.equals(ht,0))
{
tableCell.setHorizontalAlignment(Element.ALIGN_CENTER);
}
else if(Objects.equals(ht,1))
{
tableCell.setHorizontalAlignment(Element.ALIGN_LEFT);
}
else if(Objects.equals(ht,2))
{
tableCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
}
}
// 垂直对齐
if(!Objects.isNull(vt))
{
if(Objects.equals(ht,0))
{
tableCell.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_MIDDLE);
}
else if(Objects.equals(ht,1))
{
tableCell.setVerticalAlignment(Element.ALIGN_TOP);
}
else if(Objects.equals(ht,2))
{
tableCell.setVerticalAlignment(Element.ALIGN_BOTTOM);
}
}
Phrase phrase = tableCell.getPhrase(); Phrase phrase = tableCell.getPhrase();
tableCell.setPhrase(new Paragraph(phrase.getContent(), font)); tableCell.setPhrase(new Paragraph(phrase.getContent(), font));
//处理字体 //处理字体
@ -348,6 +407,20 @@ public class ReportExcelServiceImpl implements ReportExcelService {
} }
public static java.awt.Color parseRGB(String rgb) {
try {
String[] components = rgb.substring(rgb.indexOf("(") + 1, rgb.indexOf(")")).split(",");
int red = Integer.parseInt(components[0].trim());
int green = Integer.parseInt(components[1].trim());
int blue = Integer.parseInt(components[2].trim());
return new java.awt.Color(red, green, blue);
} catch (Exception e) {
e.printStackTrace();
return null; // 解析失败返回null
}
}
private String getStringValue(Cell cell) { private String getStringValue(Cell cell) {
if (cell == null) if (cell == null)
return ""; return "";

Loading…
Cancel
Save