Я не думаю, що ми мали цей клас ще тоді, коли ви задавали питання, але сьогодні є проста відповідь.
Що ви хочете зробити, це використовувати клас DataFormatter . Ви передаєте цю клітинку, і вона робить все можливе, щоб повернути вам рядок, що містить те, що Excel показав би вам для цієї комірки. Якщо ви передасте йому рядкову клітинку, ви отримаєте рядок назад. Якщо ви передасте йому числову комірку із застосованими правилами форматування, вона відформатує число, засноване на них, і поверне вам рядок назад.
У вашому випадку я припускаю, що числові комірки мають ціле правило форматування до них. Якщо ви попросите DataFormatter відформатувати ці комірки, він поверне вам рядок із цілим рядком у ньому.
Також зауважте, що багато людей пропонують робити cell.setCellType(Cell.CELL_TYPE_STRING)
, але Apache POI JavaDocs цілком чітко стверджує, що ви не повинні цього робити ! Виконання setCellType
дзвінка втратить форматування, оскільки javadocs пояснюють, що єдиним способом перетворення в String із залишком форматування є використання класу DataFormatter .