It does look a little like it may be a bug.

The first thing I did was to visit the Quick Guide and grab the code that
demonstrated how to add hyperlinks to a sheet; exactly as you did I am
guessing. I put the code into my IDE, compiled and then ran it.
Interestingly, it produced a perfectly acceptable OpenXML file. Changing
from the XSSFWorkbook to HSSFWorkbook however and I say the same problems
that you mentioned, the link to a cell on another sheet failed and to be
perfectly honest with you I did not bother tesing the link to the file but I
am gojng to guess that would have failed also just as your did. Also, when I
opened the .xls (binary) file, Excel issued an error.

The code given in the quick guide was intended to be used when you are
targetting both binary (.xls) and OpenXML (.xlsx) files. Is this the case
with your application or will be be targetting just the binary files for the
time being? If so, I will see if I can put together some code that will
accomplish what you are after. Later, this can be refactored so that a test
is placed into the code to see what sort of file we are dealing with and to
then call the appropriate code; this should provide some breathing space for
all whilst the actual (possible) bug is traced.

Will post if I make any progress.

Yours

Mark B


sujikin wrote:
> 
> Hi,
> 
> I am using the below code against poi 3.5 beta 5
> 
> public class ExcelTest {
>       @Test
>       public void testClone() throws FileNotFoundException, IOException{
>               HSSFWorkbook wb = new HSSFWorkbook(); //or new HSSFWorkbook();
>                   CreationHelper createHelper = wb.getCreationHelper();
> 
>                   //cell style for hyperlinks
>                   //by default hypelrinks are blue and underlined
>                   CellStyle hlink_style = wb.createCellStyle();
>                   Font hlink_font = wb.createFont();
>                   hlink_font.setUnderline(Font.U_SINGLE);
>                   hlink_font.setColor(IndexedColors.BLUE.getIndex());
>                   hlink_style.setFont(hlink_font);
> 
>                   Cell cell;
>                   Sheet sheet = wb.createSheet("Hyperlinks");
>                   //URL
>                   cell = sheet.createRow(0).createCell((short)0);
>                   cell.setCellValue("URL Link");
> 
>                   Hyperlink link = 
> createHelper.createHyperlink(Hyperlink.LINK_URL);
>                   link.setAddress("http://poi.apache.org/";);
>                   cell.setHyperlink(link);
>                   cell.setCellStyle(hlink_style);
> 
>                   //link to a file in the current directory
>                   cell = sheet.createRow(1).createCell((short)0);
>                   cell.setCellValue("File Link");
>                   link = createHelper.createHyperlink(Hyperlink.LINK_FILE);
>                   link.setAddress("link1.xls");
>                   cell.setHyperlink(link);
>                   cell.setCellStyle(hlink_style);
> 
>                   //e-mail link
>                   cell = sheet.createRow(2).createCell((short)0);
>                   cell.setCellValue("Email Link");
>                   link = createHelper.createHyperlink(Hyperlink.LINK_EMAIL);
>                   //note, if subject contains white spaces, make sure they are
> url-encoded
>                   
> link.setAddress("mailto:p...@apache.org?subject=hyperlinks";);
>                   cell.setHyperlink(link);
>                   cell.setCellStyle(hlink_style);
> 
>                   //link to a place in this workbook
> 
>                   //create a target sheet and cell
>                   Sheet sheet2 = wb.createSheet("Target Sheet");
>                   
> sheet2.createRow(0).createCell((short)0).setCellValue("Target
> Cell");
> 
>                   cell = sheet.createRow(3).createCell((short)0);
>                   cell.setCellValue("Worksheet Link");
>                   Hyperlink link2 =
> createHelper.createHyperlink(Hyperlink.LINK_DOCUMENT);
>                   link2.setAddress("'Target Sheet'!A1");
>                   cell.setHyperlink(link2);
>                   cell.setCellStyle(hlink_style);
> 
>                   FileOutputStream out = new 
> FileOutputStream("hyperinks.xls");
>                   wb.write(out);
>                   out.close();
>                 }
> 
> The hyperlink to file and hyperlink to other sheet does not work.
> 
> Is this a bug or I am missing something?
> 
> Thanks!
> 

-- 
View this message in context: 
http://www.nabble.com/Hyperlink-problem-in-POI-3.5-beta-5-tp24035177p24038745.html
Sent from the POI - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
For additional commands, e-mail: user-h...@poi.apache.org

Reply via email to