近期项目中经常用到Excel,要注意几点
1. 合并单元格特别小心,如果此时不加思索就用offset去偏移定位,可能出现不可预期的结果。相当诡异
2. 对于单元格的条件格式判断,基本上是无解的问题。实在是没有办法去判断某个单元格到底是因为哪个条件格式进行显示的。我现在的变通方法是规定用公式来定义条件格式,然后用App.Eval方法来判断公式是否匹配。前提是工作表要激活。
这里还有一个诡异的问题,Excel 2003和Excel 2007是有很大差别的。Excel 2003要求在Eval的时候,激活单元格,否则会以一个相对的位置去算。为了这个问题,测试了几天。
3. 进程的问题。即便是在windows Forms中编程,仍然可能会发现进程无法关闭的情况。现在很多人都是强制杀进程的。这也是一个问题。
4.要充分考虑到用户提交的工作簿可能会有锁定,可能会有外部公式链接等等情况
5.如果一个列既有文本又有数字,那么应该至少第一行用文本值,这样能够避免很多问题。因为OLEDB会有一个类型推断的行为,如果前面8个都为数字,那么它就认为后面也是数字类型,但后面又给他文本值,就出错了。