diff --git a/src/main/java/org/genesys2/server/service/impl/DownloadServiceImpl.java b/src/main/java/org/genesys2/server/service/impl/DownloadServiceImpl.java index c3151815a064f88b1ba5cdf5e6f0973b3d4b8d47..26be5dd2f021414f76307cd08f0484806beda175 100644 --- a/src/main/java/org/genesys2/server/service/impl/DownloadServiceImpl.java +++ b/src/main/java/org/genesys2/server/service/impl/DownloadServiceImpl.java @@ -31,14 +31,14 @@ import java.util.List; import com.opencsv.CSVWriter; import org.apache.commons.lang.StringUtils; -import org.apache.poi.common.usermodel.Hyperlink; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.streaming.SXSSFSheet; import org.apache.poi.xssf.streaming.SXSSFWorkbook; -import org.apache.poi.xssf.usermodel.XSSFHyperlink; +// NOTE Excel 2016 has a limit of 66,530 hyperlinks +// import org.apache.poi.xssf.usermodel.XSSFHyperlink; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.genesys2.server.model.genesys.AccessionAlias; import org.genesys2.server.model.genesys.AccessionBreeding; @@ -329,24 +329,33 @@ public class DownloadServiceImpl implements DownloadService { } if (accession.getUuid() != null) { - XSSFHyperlink hypr = (XSSFHyperlink) sheet.getWorkbook().getCreationHelper().createHyperlink(Hyperlink.LINK_URL); - hypr.setAddress("http://purl.org/germplasm/id/" + accession.getUuid()); - Cell cell = createCell(row, COL_UUID, accession.getUuid().toString()); - cell.setHyperlink(hypr); - } - if (accession.getHistoric()) { - createCell(row, COL_HISTORIC, accession.getHistoric()); + createCell(row, COL_UUID, accession.getUuid().toString()); + // NOTE Excel has a limit on hyperlinks! + + // XSSFHyperlink hypr = (XSSFHyperlink) + // sheet.getWorkbook().getCreationHelper().createHyperlink(Hyperlink.LINK_URL); + // hypr.setAddress("http://purl.org/germplasm/id/" + accession.getUuid()); + // cell.setHyperlink(hypr); } + createCell(row, COL_HISTORIC, accession.getHistoric()); + if (StringUtils.isNotBlank(accession.getAcceUrl())) { - XSSFHyperlink hypr = (XSSFHyperlink) sheet.getWorkbook().getCreationHelper().createHyperlink(Hyperlink.LINK_URL); - hypr.setAddress(accession.getAcceUrl()); - Cell cell = createCell(row, COL_ACCEURL, accession.getAcceUrl()); - if (cell != null && hypr != null) { - cell.setHyperlink(hypr); - } else { - LOG.warn("Cell or hyper null for ACCEURL id={} acceUrl={}", accession.getId(), accession.getAcceUrl()); - } + createCell(row, COL_ACCEURL, accession.getAcceUrl()); + + // NOTE Excel has a limit on hyperlinks! + + // if (cell != null && hypr != null) { + // + // // XSSFHyperlink hypr = (XSSFHyperlink) + // // + // sheet.getWorkbook().getCreationHelper().createHyperlink(Hyperlink.LINK_URL); + // // hypr.setAddress(accession.getAcceUrl()); + // // cell.setHyperlink(hypr); + // } else { + // LOG.warn("Cell or hyper null for ACCEURL id={} acceUrl={}", + // accession.getId(), accession.getAcceUrl()); + // } } if (remarks != null && remarks.size() > 0) { @@ -454,7 +463,8 @@ public class DownloadServiceImpl implements DownloadService { String year = (row[0] != null) ? String.valueOf(row[0]) : ""; StringBuilder builder = new StringBuilder(); - builder.append(day).append("-").append(month).append("-").append(year).append("#").append(institute.getCode()).append("#").append(institute.getFullName()).append("#").append(row[4]); + builder.append(day).append("-").append(month).append("-").append(year).append("#").append(institute.getCode()).append("#").append(institute.getFullName()).append( + "#").append(row[4]); writer.writeNext(builder.toString().split("#")); } @@ -469,10 +479,12 @@ public class DownloadServiceImpl implements DownloadService { // Process and write result AccessionId accession = pdci.getAccession(); if (accession.getUuid() != null) { - XSSFHyperlink hypr = (XSSFHyperlink) sheet.getWorkbook().getCreationHelper().createHyperlink(Hyperlink.LINK_URL); - hypr.setAddress("http://purl.org/germplasm/id/" + accession.getUuid()); - Cell cell = createCell(row, 0, accession.getUuid().toString()); - cell.setHyperlink(hypr); + createCell(row, 0, accession.getUuid().toString()); + + // XSSFHyperlink hypr = (XSSFHyperlink) + // sheet.getWorkbook().getCreationHelper().createHyperlink(Hyperlink.LINK_URL); + // hypr.setAddress("http://purl.org/germplasm/id/" + accession.getUuid()); + // cell.setHyperlink(hypr); } createCell(row, 1, pdci.getScore()); int col = 2; diff --git a/src/main/resources/template/download/MCPD.xlsx b/src/main/resources/template/download/MCPD.xlsx index c0283d038f443777a4ee688b039366d64d0a10c0..c0d21667ac84da96c633155db2bf21b00a9d63a8 100644 Binary files a/src/main/resources/template/download/MCPD.xlsx and b/src/main/resources/template/download/MCPD.xlsx differ diff --git a/src/main/resources/template/download/PDCI.xlsx b/src/main/resources/template/download/PDCI.xlsx index ca21b4e1c907f63fc94081ca5f291f5939a26d88..b3575011c960d38375eaf40ae7606db1e003774a 100644 Binary files a/src/main/resources/template/download/PDCI.xlsx and b/src/main/resources/template/download/PDCI.xlsx differ