Access数据库格式化输出Word文档-DBUtil-2.1结项

给父亲做数据库数据格式化输出用的一个工具,是在上一个数据库工具->数据库简易操作包DBUtil-1.0的基础上开发的

时间大概用了两周吧,1.0用了2周也差不多?也就是从毕业到现在这段时间,把这个东西的第一个可运行版本拿出来了。晚饭后永用了点时间完成了本版本的调试和最后修改,以及相关包的添加及打包工作。

项目的主题是对数据的操作,从数据库提取数据是比较简单的,无论是之前的其他数据库(MySql)操作还是Access都还好。但是Access涉及到一个ODBC连接方式的问题,64位的还没弄明白,于是暂时用的32位的1.6的jre跑。

然后项目的重点是数据库的规范化显示及输出,首先是以Html格式显示在UI中,Java中的部分文字组件支持以Html形式显示文档。期间闹了个大笑话,我试着输出大段文字,然后就打了超过1行的连续字母,然后现实的时候并没有换行。我就以为无法实现换行,后来发现其实是换行方式的问题,如果输入的是多个单词(中间有空格/间隔)就可以在可视区域内规范显示并换行。我用中文试了一下效果拔群。<-浪费了大概一天的时间,纠结死。

接着是格式化输出, 使用了Apache的POI来进行docx word文档的输出,POI是Apache的office系文档操作库,性能一般,功能挺多。用来操作Excel的资料很多,word的很少,所以走了很多弯路,这个大概就看了5~6天的样子,最开始没弄明白这东西怎么生成标签,所以硬是尝试着自己去写标签,套了好几个保留字,用来“替换”,后来大概搞明白了POI字的word文档(XWPFDocument)的标签生成方式,马上就好弄多了。再就是字体,小五号与四号字分别是9和12,而五号是10.5,蛋疼的是XWPF给提供的文字段落字体设置只能接受整形参数,所以10.5无法实现。用rar打开docx的文档结构看配置文件发现字体本身也是字号x2来保存的,也就是说10.5实际上会保存为21,但是这货只接受整数,参考了XWPF的源代码(代码实现才蛋疼,字号你特么给我用BigInteger存),果断继承了XWPF类,并仿照源码写了构造函数,增加了一个使用浮点作为参数的字体设置函数,问题解决。

显示和输出搞定了,然后是UI,其实我一直都是快速原型开发的节奏,所以通常都是先撸一个界面框架,然后撸技术点,然后撸业务。这次也不例外,界面和技术是先搞定的,同时进行。界面是用Swing开发(我也不会别的,mfc不喜),首先解决的是JList的内部组件交互问题,Java中Jlist立通过重写CellRender实现的符合组件元素中的组件都无法接受事件,也就是写个按钮不能直接点,所以必须通过给JList添加监听然后根据鼠标坐标判断所属元素再通过元素的位置判断鼠标当前交互的子组件,再对组件进行操作然后重绘。灰常麻烦,而且性能略差。其实以前做过一个和JList非常类似的控件,就是在三星实习的时候做Android的Fragment,但是玩儿了2天才大概搞明白其刷新机制。这段也花了不少时间,布置好大概的组件控件之后,进行了简单的事务处理和按钮重绘(大概是我画过最粗糙的按钮了)。

界面搞定后搞业务,业务部分基本就是码字,毕竟前面已经把输出部分攻克了。调试基本是伴随着开发进行的,最后整体调试了n次,打包。打包的时候,发现自己不会连外部包一起打,于是暂时把包全拆开,把里面的类直接塞包里,算是解决问题,吼猴。至此2.1版本结项。其实晚上还是2.0,后来给父亲测试发现某些性能太差,所以简单改了改于是就2.1了。

嘛,无所谓了,洗洗睡(这么早趴床真不容易,最近累要死,每天都睡很晚,QwQ 求安慰)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值