2014-12-15 3 views
1

Я хочу объединить ячейки с помощью POI в java. У меня есть входной лист, который объединил ячейки.Как слить ячейку с помощью POI в Java

Прежде всего, мне нужно, чтобы все объединенные ячейки сформировали этот лист. Затем я должен создать новое с аналогично объединенными ячейками.

Я получил объединенные ячейки по методу getNumMergedRegions().

Который дал мне следующие значения: A56:A64=9, A65:A73=9, A2:A8=7, A49:A55=7, A20:A26=7, A9:A19=11, A43:A48=6, A27:A42=16. Теперь я хочу создать новый лист и хочу, чтобы ячейка была объединена на основе этих значений. ИЛИ любой может мне помочь любым другим способом, используя JXL api.

ответ

2

Вы можете использовать CellReference разобрать требуемое Строка, вот пример:

String[] cellStrings = "A2:A8".split(":"); 
    CellReference start = new CellReference(cellStrings[0]); 
    CellReference end = new CellReference(cellStrings[1]); 

    CellRangeAddress address = new CellRangeAddress(start.getRow(), 
      end.getRow(), start.getCol(), end.getCol()); 
    System.out.println(address); 

Это должно выход:

org.apache.poi.ss.util.CellRangeAddress [A2:A8]

Затем вы можете использовать addMergedRegion от экземпляра HSSFSheet.

+0

Можем ли мы сделать то же самое с помощью JXL Api –

+0

Я не знаю JXL Api, никогда не пробовал. Читая Документы, у вас есть jxl.CellReferenceHelper и jxl.Range, предположим, что логика одинакова –

2

Вы можете использовать метод sheet.addMergedRegion(rowFrom,rowTo,colFrom,colTo);, чтобы найти его документ на официальном сайте.

Пример:

sheet.addMergedRegion(new CellRangeAddress(1,1,4,1)); 

Это слияние с В2 до Е2

Грубая оценка для вас попробовать это A2: A8:

sheet.addMergedRegion(new CellRangeAddress(1,9,0,0); 
+0

Я хочу что-то, где я могу упомянуть A2: A8, и он должен объединить ячейки от A2 до A8 –

+0

Я ответил на этот родовой, однако отредактированный! – Sarz

+0

Взгляните на CellReference Javadoc, может быть полезно проанализировать строку, в которой у вас есть индексы int. –

Смежные вопросы