update:
keep 2 digits at most when writing float to excel;
update:
1) redesign UI, discard absolute positions, use LayoutManager to make UI
scalable;
2) init and show UI in event-dispatch thread, it's safe;
3) add SwingWorker thread to show log when running and give the user a
chance to interrupt the process;
4) move most functions from Main to Task,
then i can call task.isCancelled() in these functions;
BTW, it's hard to calculate the progress, so do NOT show progress
dialog;
5) the button "Action" will become "Cancel" when start running; user can
cancel the process now;

note: i have compared the new report, the same with old one, so these
modification did NOT affect the final report;