ayar değil ve çizgi bir bağlantı içerdiğinde, böyle bağlantıya önceki hücrenin köprüyü ayarlayın: BenJava POI Bir metin dosyasından okumak için çalışıyorum önceki hücre köprüyü
while (scanner.hasNextLine()) {
String nextToken = scanner.nextLine();
if (nextToken.startsWith("<")) {
temp = Jsoup.parse(nextToken);
url = temp.select("a").first();
link.setAddress(url.attr("href"));
System.out.println(link.getAddress());
prevCol = currRow.getCell(col - 1);
System.out.println(row + ", " + col -1);
prevCol.setHyperlink(link);
} else {
currCol.setCellValue(nextToken);
col++;
currCol = currRow.createCell(col);
}
if (nextToken.isEmpty()) {
row++;
col = 0;
currRow = sheet.createRow(row);
currCol = currRow.createCell(col);
}
}
Linklerin, olması gereken hücrede ayarlandığından emin olmak için her bağlantıyı ve hücre koordinatlarını konsola yazdırmak, ve onlar. Ama benim sorunum sadece tüm hücrelerdeki son hücreye bağlı bir köprü oluyor. Herhangi bir fikir neden? daha yararlı bulanlar için
Tam kodu:
public static void main(String[] args) throws EncryptedDocumentException, InvalidFormatException, IOException {
File file = new File("C:\\Users\\Jester\\Desktop\\data scrap payday\\finishedformat.txt");
FileInputStream fis = new FileInputStream(
new File("C:\\Users\\Jester\\Desktop\\data scrap payday\\Payday 2 Rewards.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(fis);
CreationHelper createHelper = workbook.getCreationHelper();
XSSFSheet sheet = workbook.createSheet("Achievement Rewards");
Document temp;
Element url;
Scanner scanner = new Scanner(file, "UTF-8");
XSSFHyperlink link = (XSSFHyperlink) createHelper.createHyperlink(Hyperlink.LINK_URL);
int row = 0;
int col = 0;
XSSFRow currRow = sheet.createRow(row);
XSSFCell currCol = currRow.createCell(col);
XSSFCell prevCol;
XSSFCellStyle hlinkstyle = workbook.createCellStyle();
XSSFFont hlinkfont = workbook.createFont();
hlinkfont.setUnderline(XSSFFont.U_SINGLE);
hlinkfont.setColor(HSSFColor.BLUE.index);
hlinkstyle.setFont(hlinkfont);
while (scanner.hasNextLine()) {
String nextToken = scanner.nextLine();
if (nextToken.startsWith("<")) {
temp = Jsoup.parse(nextToken);
url = temp.select("a").first();
link.setAddress(url.attr("href"));
System.out.println(link.getAddress());
prevCol = currRow.getCell(col - 1);
System.out.println(row + ", " + col);
prevCol.setHyperlink(link);
prevCol.setCellStyle(hlinkstyle);
System.out.println(prevCol.getHyperlink().getAddress()); //This is returning the desired link to the console too, sooooo....
} else {
currCol.setCellValue(nextToken);
col++;
currCol = currRow.createCell(col);
}
if (nextToken.isEmpty()) {
row++;
col = 0;
currRow = sheet.createRow(row);
currCol = currRow.createCell(col);
}
}
fis.close();
FileOutputStream fos = new FileOutputStream(
new File("C:\\Users\\Jester\\Desktop\\data scrap payday\\Payday 2 Rewards.xlsx"));
workbook.write(fos);
fos.close();
}
Girdi biçimi böyle gibidir:
Hail to the King, Baby
In the Golden Grin Casino heist, kill "The King" and complete the heist in stealth
<a href="http://payday.wikia.com/wiki/Golden_Grin_Casino" title="Golden Grin Casino">Golden Grin Casino</a>
"Sports Utility Mask" mask
<a href="http://payday.wikia.com/wiki/Masks_(Payday_2)#The_Golden_Grin_Casino_Heist_DLC" title="Masks (Payday 2)">Sports Utility Mask</a>
"Carpet" material
<a href="http://payday.wikia.com/wiki/Materials#The_Golden_Grin_Casino_Heist_DLC" title="Materials">Carpet</a>
"Dices" pattern
<a href="http://payday.wikia.com/wiki/Patterns#The_Golden_Grin_Casino_Heist_DLC" title="Patterns">Dices</a>
Bu hile yaptı, teşekkürler! – JesterXIII