我正在尝试使用excel-import插件从Grails的.xslx电子表格中读取一些数据 (基于Apache POI)。
除了具有超链接(可点击)的主标题外,它适用于所有数据类型。 - 当我简单地将列映射到String(下面的代码)时,我只得到没有超链接的标题。我尝试将期望的类型指定为“超链接”(来自org.apache.poi.ss.usermodel),但它不起作用。
我正在使用excel-import示例项目提供的代码
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,然后解析这些巨大的文件。我试过搜索是否有人有同样的问题,但我找不到类似的东西。
答案 0 :(得分:1)
看source of the plugin,看起来不可能(有人可能会有所不同)。也许发布issue requesting the feature - 或者添加功能并提交拉取请求,如果你感到勇敢的话; - )
使用原始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'
}
}