Excel录入程序问题总结-操作Excel数据库、汉字转拼音问题、VS2005中文输入法全角问题
来源:互联网 发布:linux history 查找 编辑:程序博客网 时间:2024/06/18 05:29
前几天给女朋友写了一个录入数据到Excel表的小程序(程序员同志们谈恋爱,要积极发挥个人专长啊。一方面心疼MM,另一方面也展示一下作为程序员的才智啊,呵呵)。就程序中遇到的一些小问题总结一下,以后遇到相同的问题就“有法可依”了,呵呵。
1.C#操作Excel数据库
程序功能很简单,一个纸质表上的信息录入到四个Excel表中(手工的话要录入四次),没什么复杂功能,就是操作Excel表了。
C#操作Excel表通常有两种方式:将Excel表作为数据库使用Sql语句读写、将Excel表作为普通文件使用Ole嵌入式读写。我选择了将Excel表作为数据库方式读写的方式。
通常Excel表都不是格式良好的数据库。没办法,只好麻烦MM把表格自己修改一下了:将Excel中的标题行去掉、如果设置了单元格格式还要将单元格格式改回普通(插入的时候一定要改)。或者将数据之后设置了格式的单元格行全部删除。
可以将操作Excel的部分写成一个类。程序序中加入using System.Data.OleDb;然后连接字符串:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=路径名/文件名.xls;Extended Properties=Excel 8.0;“也可以加上HDR=Yes;IMEX=1;(即:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=文件路径/Excel文件名.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'")HDR的作用是指示首行记录是否作为表头。IMEX的作用是指示混合模式,包括数字0导入、1导出、和2混合模式。通常录入数据时以Excel表中前八行的数据格式判断列格式,如果在数字列中插入文本,并且IMEX为1,就会出错。我的选择是两个参数都不加,第一行作为表头。
一个常用选择Select语句可能是这样:select * from [Sheet1$]
或者:select max([序号]) from [Sheet1$]
如果程序中sql语句用到了max函数就要注意了(我的程序中就用到了)。如果是数字行用max函数的话,会发现一个奇怪的问题,比如select max([序号]) from [Sheet1$],如果序号是1-10,那么选择的结果并不是10所在的行而是9(不知道是不是我没设置IMEX参数的事啊,有兴趣的试试吧)!对于数字列也是按照字符串从左到右一位一位排序的。所以排序结果从小到大是1、10、2、3、4、5、6、7、8、9; 我用的解决办法是将序号全部搜索出来然后,转换为数字查找出最大的序号。
一个常用的插入语句可能是这样:insert into [Sheet1$]([序号],[姓名]) values(200901440129,'楼主')
或者:insert into [Sheet1$]([序号],[姓名]) values('200901440129','楼主')数字可作为字符也可以作为数字。
2.汉字转拼音的问题:
在录入数据时,不仅要录入一个中文姓名,还要求录入相应的姓名拼音。为了体贴MM,这部分工作当然得交给程序来做啦。
VS2005还不够体贴似乎没有现成的类,好在网上英雄不少,呵呵,自己找一个就行了。汉字转拼音基于与临界汉字比较实现,我找了一个比较帅的,放在我的下载里了,1个资源分,给自己赚分啊。有需要的可以去下。
3.VS2005中文输入法全角问题
相信这是一个很多人都遇到过的问题,在文本框中输入中文时,如果弹出一个对话框或者窗体失去焦点后重新获得焦点,再次输入时,输入法莫名其妙的转换为全角格式。
在网上搜索了很多资料说是.Net FrameWork的问题。据说微软出的补丁也不是很管用。有得说只要修改一下控件的IMEMode就可以了,我修改了一下,有时候管用有时候问题还是出现。
没办法,只好自力更生了。既然知道问题是在窗体重新获得焦点时出现的那就好办了,只要将上面的解决办法完善一下就好了,在窗体每次重新获得焦点的时候都设置一次控件的ImeMode就好了,呵呵,为窗体的 frmMain_Activated 事件添加响应函数: 呵呵,这样每次窗体获得焦点的时候都会重新设置输入法为半角格式(全角在这个程序中用不到)。
引用请注明作者:飘渺孤鸿
- Excel录入程序问题总结-操作Excel数据库、汉字转拼音问题、VS2005中文输入法全角问题
- Vs2005 中文输入法全角问题 解决
- (转)VS2005中文输入法自动转换为全角的问题
- VS2005与紫光拼音输入法全角问题
- VS2005 OR 2008 输入法 全角问题
- VS2005中文输入法问题的总结
- VS2005中文输入法问题的总结
- vs2005开发WinForm程序时,输入法自动变全角的问题!
- EXCEL 汉字转拼音
- VS2005与紫光拼音输入法全角问题的解决办法
- vc操作excel程序退出的问题
- vc操作excel程序退出的问题
- 解决Excel导入mysql数据库时汉字乱码的问题
- 关于Excel操作的问题总结
- 操作Excel中的问题
- C++ 操作Excel问题
- VS2005中全角/半角问题
- vs2005 winform 全角/半角问题
- 12星座太久没人爱
- C#格式化数值结果表作者: 周建东 日期: 2007-08-04 06:03
- 12星座男人的梦中情人
- 用自己的比较函数构造STL的set
- linechart 的高级应用
- Excel录入程序问题总结-操作Excel数据库、汉字转拼音问题、VS2005中文输入法全角问题
- 说谎不眨眼的五个星座
- 数据库中的命名规则
- 有疑心病的五个星座男人
- 山寨智能机啥时候上市???
- 【UC浏览器】Java平台7.0正式版发布啦
- C# 将数据导出到Execl汇总
- Java中ThreadLocal的设计与使用
- Win7操作系统安装