Excel的一点小事

今天策划同学报告程序里的触发器有bug,过去看了下日志,提示数据文档配置有问题。心想问题不大,修改下表格内容就可以了,当我看完数据表后,悲催的一天开始了。。。

我们项目模板数据使用的是json,但策划同学肯定更喜欢Excel,所以我们项目的配置文件生成流程是这样的:

Created with Rapha?l 2.1.2StartExcel转换加载json

其中在Excel转json这步,我们将Excel文件生成json,同时自动生成配置文件类。

当前的问题发生在Excel转json的过程中json数据丢失了,由于这个工程各个项目组都在用,我怀疑是策划同学在填表的时候有特殊符号,导致在转换的过程中出了问题。但仔细检查后并没有问题。那唯一的问题只能是Excel转json的工程有bug。查看相关代码没有看出什么嫌疑。去Google查询Excel数据丢失问题,也没得到什么好的答案。

通过分析输出字段我发现通过转换后的字段长度都是255,无论字符串里是否包含特殊字符,排除掉特殊字符这条线索。然后将255关键字加上之后,Google立马给出了答案:

当数据驱动从Excel读取数据的时候,会从HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel这个地址读取变量TypeGuessRows来决定通过读取几行来判断数据类型,如果前8行没有超过255的字段,后面都按255长度来读。

解决方案岂不是显而易见,就是修改这个值,我们的数据表很大,所以我将TypeGuessRows修改为0,貌似世界清静了,但结果出乎意料,没有任何作用。查了非常多的文档,大家几乎都是用这种方式,包括微软官方文档。可是没有任何效果。

最终我让策划同学在我们的表类型说明行里填充超过255的字符,来当占用符,问题解决了。

通过这个问题,再次巩固了我对解决问题的几个认识:

1、用别人的库确实方便,但没有源代码但出了问题只能查看文档和google能告诉你怎么办了。

2、在遇到问题的时候,不选择优美但不确定的方案,而是采用实用的方案。

3、合理的实用搜索引擎,只有告诉Google正确的关键字,才能得到合适的答案。

参考资料

[1]http://support.microsoft.com/en-us/kb/839785

[2]http://www.dotnetthoughts.net/text-truncated-to-255-characters-when-reading-from-excel-using-oledb/

时间: 2024-10-13 11:53:33

Excel的一点小事的相关文章

java处理excel的一点实践积累

作者:佟亮    日期:2008-11-06 1   文档说明 目的:编写本文档主要的目的是与大家分享下如何用java处理excel,文档中的代码一部分来自<企业项目管理系统V2.0>的源码,一部分copy网上的. 背景:使用Windows操作系统的同事对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事.在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈. 2   需求 本部分与技术无关,没兴趣的同事可以跳过直接看下一章.

关于工作的一点小事

正式上班已经两周了,感觉学会的好少,有时候想逃避这种工作,交代学习的任务也完成的不是很好,真是鸭梨大,真想逃避.想辞职吧,又想想出去找工作有点麻烦,但是又被这边的主管说.心理老是有这两种想法,互相斗争.这两种实物,互相博弈,终于到了一方站到制高点获取胜利了.还是辞职把.之后就把该说的和人事说了.理由很简单,这边的学习进度我更不上,我想退出,我不玩了.之后回去想想,其实到哪个技术公司都一样,问的太简单的问题都一样被鄙视.可以说你不会,你不会你不虚心的接受别人的指导,还要一脸严肃的表情,还要耍脾气,

关于MVC模板渲染的一点小事type=&quot;text/template&quot;

先上一个demo,简单粗暴,请自便 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{ margin: 0px; padding: 0px; } </style> <script src="http://code.jquery.c

【橙子】微信投票的一点小事

我第一次被安利用微信是因为当时他的语音功能,然后感觉推送方便,界面也很轻,可能是上了年纪耍不动花里胡哨的东西了. 凡是有但是,但是现在感觉又重了,不仅功能重了,人情也重了, 其中一个引人讨厌的就是微信投票,  至少我不喜欢,特别是为了赢个水杯,天天群里推投票之类的!!! 于是我就想帮他刷票, 帮他的对手刷票,神烦. 话不多说,刚好昨天又有人在群里安利了个投票 不贴代码了,也就几句话的事儿 分析步骤:1.发现里面有个随机id,2.有cookie id信息,  投了票后就被限制了,但是发现清除coo

菜鸟关于mvc导出Excel的想法

本人菜鸟一个,关于MVC生成Excel的一点想法.有错误请指教. 在视图上最终生成的table.添加下载excel按钮,用js或jq写当点击这个按钮执行查找页面上的<table>标签,并提交table的值.在控制器里写一个action用于接收返回的<table>的内容,进行处理生成excel文件,返回excel文件下载.

一点感想

其实cnblog是禁止这些跟IT无关的东西的,不过ad神犇写了好几篇也没事,我这一篇更是死不了了啊哈哈. 从去年9.1到今天已经将近1年了,不得不说,学OI的这一年,实在是,怎么说呢,算了(语死早). 一年也过去了,我也从当初那个天不怕地不怕的小毛孩儿成长为现在的我,反观过去,感慨油然而生. 想当年,我还在北区的校园喊着“我要打破衡中信奥无金牌的纪录”,还在没日没夜地传播反动言论“信奥大法好,三退保平安”(三退:退数学退生物退高考),还在幻想自己能进集训队,跳过高三的苦逼生活,现在想想,真是幼稚

excel vba 数据分析

(Visual Basic Application) VBA(Visual Basic for Application)是Microsoft Office系列软件的内置编程语言,其语法结构与Visual Basic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境. 第一节 标识符 一.定义 标识符是一种标识变量.常量.过程.函数.类等语言构成单位的符号,利用它可以完成对变量.常量.过程.函数.类等的引用. 二.命名规则 1)  字母打头,由字母.数字和下划线组成,如 A987b_2

《论工业社会及其未来》—泰德.卡辛斯基

中文译文基于1996年中国文史出版社<轰炸文明——发往人类未来的死亡通知单>,原译者王小东 INTRODUCTION 介绍 1. The Industrial Revolution and itsconsequences have been a disaster for the human race. They have greatlyincreased the life-expectancy of those of us who live in "advanced"cou

《心若向阳,何惧忧伤》读后感

"这次的成绩怎么这么不理想,你看隔壁XX考得多好""为什么她/他穿得那么好看,我也要买""我已经很累了,不要来烦我了""为什么要迟到"--想必大家都有类似的境遇,总感觉生活好艰难啊,活得并不开心,并不幸福. 越长大烦恼越多.小时候,和小伙伴在一起玩耍也不用想太多,天真无邪的,想笑就笑,想闹就闹,感觉生活没有什么大不了,可是,慢慢地,总觉得没以前开心了,每天都生活在充满负能量的环境里.就好比,舍友每天下班回来就开始抱怨这一天的种