Я деякий час використовую POI Apache для програмного читання існуючих файлів Excel 2003. Тепер у мене є нова вимога створити цілі файли .xls у пам'яті (все ще використовуючи POI Apache), а потім записати їх у файл наприкінці. Єдина проблема, яка мені перешкоджає, - це обробка осередків з датами.
Розглянемо наступний код:
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
Коли я записую робочу книжку, що містить цю клітинку, у файл і відкриваю її за допомогою Excel, комірка відображається як число. Так, я розумію, що Excel зберігає свої "дати" як кількість днів з 1 січня 1900 року, і саме це означає кількість у комірці.
ПИТАННЯ: Які дзвінки API можна використовувати в POI, щоб сказати, що я хочу застосувати формат дати за замовчуванням, застосований до моєї комірки дати?
В ідеалі я хочу, щоб комірка електронної таблиці відображалася з тим самим форматом дати за замовчуванням, який призначив би Excel, якби користувач відкрив електронну таблицю в Excel вручну і набрав значення комірки, яке Excel визнав датою.
BuiltinFormats
який перераховує всі стандартні формати (не лише формати дати), які знає Excel. Я дотримуюся одного з тих, які використовуватимуть як мій параметрgetFormat()
методу, показаному в фрагменті вище.