Grails Excel导入超链接
我正尝试使用excel-import插件(基于Apache POI)从Grails中的.xslx电子表格中读取一些数据。
它适用于所有数据types,除了主标题有超链接(可点击)。 当我简单地将列映射到一个string(下面的代码),我只得到没有超链接的标题。 我试图指定预期的types为“超链接”(来自org.apache.poi.ss.usermodel),但没有奏效。
我正在使用由Excel导入示例项目提供的代码
static Map CONFIG_BOOK_COLUMN_MAP = [ sheet: 'Sheet1', startRow: 1, columnMap: [ 'A': 'title', 'C': 'createdBy', 'D': 'createdDate', ] ]
当我将Excel电子表格导出为.csv格式时,超链接会丢失,但是当我将其导出到XML时,超链接被保留(但好像数据嵌套在单元格内?),如下例所示:
<Row ss:AutoFitHeight="0" ss:Height="14.99"> <Cell ss:HRef="http://longLink..." ss:StyleID="ce2"> <Data ss:Type="String">Some Text</Data></Cell>
我对grails和groovy相当陌生,过去几天我试图解决这个问题。 有没有办法做到这一点,因为我不想将所有的XLSX文件转换为XML,然后parsing这些巨大的文件。 我试着search是否有人有同样的问题,但我找不到类似的东西。
看看插件的来源 ,看起来这是不可能的(有人可能会知道不同)。 也许发布一个问题,请求function – 或添加function,并提交一个拉请求,如果你感到勇敢;-)
虽然使用原始POI可以这样做:
import org.apache.poi.hssf.usermodel.* // Load a workbook with a hyperlink to google in cell 0,0 new File( '/tmp/test.xls' ).withInputStream { ins -> new HSSFWorkbook( ins ).with { workbook -> workbook.getSheetAt( 0 ) .getRow( 0 ) .getCell( 0 ).hyperlink.address == 'http://www.google.com' } }