﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-海上月明-随笔分类-Office</title><link>http://blogjava.net/pts/category/29276.html</link><description>editer by sun</description><language>zh-cn</language><lastBuildDate>Tue, 27 Oct 2015 06:53:32 GMT</lastBuildDate><pubDate>Tue, 27 Oct 2015 06:53:32 GMT</pubDate><ttl>60</ttl><item><title>Word被写保护，如何解除编辑限制</title><link>http://www.blogjava.net/pts/archive/2015/10/27/427926.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Tue, 27 Oct 2015 04:44:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2015/10/27/427926.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/427926.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2015/10/27/427926.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/427926.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/427926.html</trackback:ping><description><![CDATA[<p>From：http://blog.sina.com.cn/s/blog_69c64eee0100y2b1.html</p>
<p>方法一：<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;用于word各版本。<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;把受保护的文件另存为XML格式，新存的文件用右键以记事本的方式打开，搜索&#8220;DocumentProtection&#8221;，在前面加上&#8220;un&#8221;，变为&#8220;unDocumentProtection&#8221;，保存。<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;用word打开修改后的xml格式，可以看到文件已经可以修改了。如果需要，可以重新保存为.doc格式。</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;方法二：<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;只适用于word2007、2010版本，后缀格式为docx的。<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;1. 将Word文件的后缀名".docx"改为".rar"。<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;2. 双击打开，进入"Word"目录，找到"settings.xml"，把它解压出来。<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;3. 右键点击解压好的"settings.xml"，点击&#8220;编辑&#8221;，查找"&lt;w:documentProtection"，改成"&lt;w:undocumentProtection"，保存文件。<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;4. 把改好的"settings.xml"拖入rar文件，完成后把后缀名改回".docx"即可。<br />
<br />[&lt;w:undocumentProtection w:edit="forms" w:enforcement="on" w:unprotectPassword="888888"/&gt;]注意另存为xml时选择word 2003 xml文档格式</p><p>
&nbsp;<wbr>&nbsp;顺便把写保护的方法也弄在这边吧</p>
<p>Word如何写保护：</p>
<p>工具--&gt;保护文档--&gt;格式设置限制打钩（设置里面的东西全部点上就好）--&gt;编辑限制打钩--&gt;复选框里面选择填写窗体（这样别人就不能进行复制等编辑操作，其他能复制）--&gt;启动强制保护--&gt;输入密码--&gt;确定--&gt;保存</p><img src ="http://www.blogjava.net/pts/aggbug/427926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2015-10-27 12:44 <a href="http://www.blogjava.net/pts/archive/2015/10/27/427926.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Word中尾部空格不能显示下划线的解决方法</title><link>http://www.blogjava.net/pts/archive/2015/06/23/425848.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Tue, 23 Jun 2015 09:56:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2015/06/23/425848.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/425848.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2015/06/23/425848.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/425848.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/425848.html</trackback:ping><description><![CDATA[<p><span>症状：在使用Word2003的过程中，如果空格处在一行字的末尾，那么空格下面的下划线就显示不出来，如果空格处在字符之间或者一行的首部，那么其下面的下划线是可以显示的。<br /><br />解决方法：<br />　　Word菜单 <br />- 工具 - 选项 - 兼容性 - 找到&#8220;为尾部空格添加下划线&#8221;的选项打勾即可。（WordMenu - Tools - Options - <br />Compatibility - &#8220;Draw underline on trailing spaces&#8221;[Checked]）</span></p><p><span><br />Word2007：</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 您可以通过按 Shift+ 连字符 (-) 
为空格添加下划线，但很难将下划线对齐，例如在创建待填表单时。而且，如果启用了将下划线字符更改成边框线的自动套用格式选项，在一行内按 Shift+ 连字符 (-) 
三次或更多次将产生一条扩展至段落宽度的线，这可能不是您所希望的。</p><p>为打印的文档的空格添加下划线的一个更好方法是，使用 Tab 键并将下划线格式应用于制表符。</p><p>当您要在联机表单中创建下划线时，请插入显示底部边框线的表格单元格。<br />　　另（变通方法）：在最后插入一个非间断性空格(Ctrl + Shift <br />+ Space)即可。</p><img src ="http://www.blogjava.net/pts/aggbug/425848.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2015-06-23 17:56 <a href="http://www.blogjava.net/pts/archive/2015/06/23/425848.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PYTON与EXCEL：使用pyExcelerator来读写 Excel文件</title><link>http://www.blogjava.net/pts/archive/2014/11/21/420390.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Fri, 21 Nov 2014 01:35:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2014/11/21/420390.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/420390.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2014/11/21/420390.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/420390.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/420390.html</trackback:ping><description><![CDATA[【FROM】<a href="http://blog.csdn.net/suofiya2008/article/details/5589627">http://blog.csdn.net/suofiya2008/article/details/5589627</a>&nbsp;&nbsp;&nbsp; <br />我们写程序，经常会需要输出一些数据进行保存，对于格式固定的大量数据，Excel表格会是比较好的一个选择。如果你需要在Python下写入Excel文件，那么就需要用到PyExcelerator了。<p>PyExcelerator是一个第三方库，用来处理Excel文件。它的优点是：</p><p>简单易用，上手快。</p><p>写操作很方便，适合用来生成Excel文件记录数据。</p><p>不需要WinCOM支持，没装Office也 可以生成Excel表格</p><p>当然，PyExcelerator也是有缺点的，它所提供的读写操作方式相对简单，要对已有的Excel文件进行修改，就显得比较麻烦了。</p><p>如果要对已有的Excel表格进行较复杂的修改操作，选择PyExcelerator就不太合适了，这时候可以试试另外的方法。比如使用pywin32通过WinCOM来操作Excel表格，或者使用xlrd。</p><p>PyExcelerator的官方主页是<a href="http://sourceforge.net/projects/pyexcelerator">http://sourceforge.net/projects/pyexcelerator</a>，程序包中并没有太多的教程文档，不过包含了一些简单的示范操作的小例子，如果需要更详细的信息，就只能读源代码了。</p><p>&nbsp;</p><p>一。初始pyExcelerator</p><p>&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp; pyExcelerator是一个基于python的可以读写excel文件的产品。和xlrd相比，pyExcelrator的主要特点在于可以对excel文件进行写操作。但是在读取数据方面，功能就没有xlrd强大了。</p><p>　　pyExcelerator只能提供关于表单内容的基础数据，对于表单行数、列数、单元格数据类型等详细信息都没有提供访问接口。因此开发人员必须了解表单的具体结构，才对表单中的数据进行正确的分析转换。</p><p>　　将pyExcelerator产品包（pyexcelerator-0.6.3a.tgz）上传到服务器上之后解压缩，然后在产品目录下键入如下命令：</p><pre>   <span style="background-color: rgb(136, 136, 136);">  <span style="color: rgb(255, 0, 0);"># python setup.py install</span>






</span>
在命令行中，你将看到一连串的running，creating，copying，byte&#8212;compiling命令结果，吧啦吧啦。。。



最后一行出现

Writing C:/Python26/Lib/site-packages/pyExcelerator-0.6.4.1-py2.6.egg-info



说明已经将插件安装到你的python环境中了，至此安装完成。



这里提一个小例子：</pre><div class="wp_syntax"><div class="code"><div class="dp-highlighter bg_python"><div class="bar"><div class="tools"><strong>[python]</strong> <a title="view plain" class="ViewSource" href="http://blog.csdn.net/suofiya2008/article/details/5589627#"><u><font color="#0066cc">view plain</font></u></a><a title="copy" class="CopyToClipboard" href="http://blog.csdn.net/suofiya2008/article/details/5589627#"><u><font color="#0066cc">copy</font></u></a><a title="print" class="PrintSource" href="http://blog.csdn.net/suofiya2008/article/details/5589627#"><u><font color="#0066cc">print</font></u></a><a title="?" class="About" href="http://blog.csdn.net/suofiya2008/article/details/5589627#"><u><font color="#0066cc">?</font></u></a></div></div><ol class="dp-py"><li class="alt"><span class="keyword">from</span><span>&nbsp;pyExcelerator&nbsp;</span><span class="keyword">import</span><span>&nbsp;*&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>w&nbsp;=&nbsp;Workbook()&nbsp;<span class="comment">#创建一个工作簿</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>ws&nbsp;=&nbsp;w.add_sheet(<span class="string">'Hey,&nbsp;Hades'</span><span>)&nbsp;</span><span class="comment">#创建一个工作表</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>ws.write(<span class="number">0</span><span>,</span><span class="number">0</span><span>,</span><span class="string">'bit'</span><span>)&nbsp;</span><span class="comment">#在1行1列写入bit</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>ws.write(<span class="number">0</span><span>,</span><span class="number">1</span><span>,</span><span class="string">'huang'</span><span>)&nbsp;</span><span class="comment">#在1行2列写入huang</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>ws.write(<span class="number">1</span><span>,</span><span class="number">0</span><span>,</span><span class="string">'xuan'</span><span>)&nbsp;</span><span class="comment">#在2行1列写入xuan</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>w.save(<span class="string">'mini.xls'</span><span>)&nbsp;</span><span class="comment">#保存</span><span>&nbsp;&nbsp;</span></span></li></ol></div><pre class="python" style="text-align: left; font-family: monospace; display: none;" name="code">from pyExcelerator import *



w = Workbook() #创建一个工作簿



ws = w.add_sheet('Hey, Hades') #创建一个工作表



ws.write(0,0,'bit') #在1行1列写入bit



ws.write(0,1,'huang') #在1行2列写入huang



ws.write(1,0,'xuan') #在2行1列写入xuan



w.save('mini.xls') #保存</pre><h5><a name="t0"></a>二、Excel文件读取</h5><blockquote><p>from pyExcelerator import *<br /> sheets = parse_xls('d:/a.xls')</p></blockquote><p>很简单，与 xlrd 不同。xlrd 需要先调用book = xlrd.open_workbook(filename)打开文档，然后再调用sh= book.sheet_by_index(i)来得到第几个sheet，然后再使用sh.cell_value(i,j)得到i行j列的单元格的值。操作多了一点。而上面的parse_xls(filename)则直接返回一个列表，每一项就是一个sheet的数据。每项是一个二元组(表名,单元格数据)。其中单元格数据为一个字典，键值就是单元格的索引(i,j)。如果某个单元格无数据，那么就不存在这个值。看似简单，但从处理上不象&nbsp; xlrd 一样，可以知道每个sheet的最大行数和列数，然后进行循环。而使用 pyExcelerator好象没有最大行数和列数，再加上空数据又不存在，因此在处理上相对麻烦一些。这样在处理上还需要注意。它与 xlrd 一样都支持 unicode，但好象没有 xlrd 一样方便地判断单元格的类型的方法，感觉还是 xlrd在功能上可能要强一些。当然这只是个人感觉，再加上只是看了看例子，并没有怎么使用。 </p><h5><a name="t1"></a>三、Excel文件写入</h5><p>这个才是重头。那么安装好 pyExcelerator 之后，读了 Readme.txt 之后了解到它的文档正在进行当中，因此想多了解如何使用它需要看它所带的例子，甚至看源程序。下面是我从例子中了解的如何写一个 Excel 文档需要了解的。 </p><p>为了方便，在导入这个模块中使用了import *的方式。 </p><blockquote><p>from pyExcelerator import *</p></blockquote><p>首先导入模块，然后是生成工作薄。 </p><blockquote><p>w = Workbook()</p></blockquote><p>接着是加入一个工作表(sheet)。 </p><blockquote><p>ws = w.add_sheet('Hey, Dude')</p></blockquote><p>然后就可以保存了。 </p><blockquote><p>w.save('mini.xls')</p></blockquote><p>上面的代码加在一起就是： </p><blockquote><p>from pyExcelerator import * </p><p>w = Workbook()<br /> ws = w.add_sheet('Hey, Dude')<br /> w.save('mini.xls')</p></blockquote><p>这就是最小的一个例子了，在例子中叫mini.py。你可以在例子目录下运行mini.py看一看是不是生成了一个空的Excel文件。 </p><p>如果想加入中文很简单，改为： </p><blockquote><p>#coding=cp936<br /> from pyExcelerator import * </p><p>w = Workbook()<br /> ws = w.add_sheet(u'这是中文')<br />w.save('mini.xls')</p></blockquote><p>这样上面的执行结果是生成一个空Excel文件，但它的第一个sheet的名字为&#8220;这是中文&#8221;。就这样，只要保证你写入时使用unicode就行了。 </p><p>空文件可以生成，那么如何插入单元格呢？ </p><blockquote><p>ws.write(i, j, value)</p></blockquote><p>其中value为值，可以是unicode。 </p><p>接着，我们可能想改变单元格的样式，如字体： </p><blockquote><p>font0 = Font()<br /> font0.name = 'Times New Roman'<br /> font0.struck_out = True<br /> font0.bold = True </p><p>style0 = XFStyle()<br /> style0.font = font0</p></blockquote><p>这样我们创建了一个字体，然后又生成了一个样式。注意，<strong>真正起作用的是样式</strong>，字体不过是样式中的一种效果。 </p><p>这样在写入单元格时带着这个样式就行了，还是使用上面的write()方法： </p><blockquote><p>ws.write(1, 1, 'Test', style0)</p></blockquote><p>这是在名为ws的sheet中的第(1,1)单元格写入了值为"Test"的内容，并且它的样式为style0。 </p><p>然后我们还可以设置单元格的边框： </p><blockquote><p>&nbsp;&nbsp;&nbsp; borders = Borders()<br /> &nbsp;&nbsp;&nbsp; borders.left = 5<br /> &nbsp;&nbsp;&nbsp; style.borders = borders</p></blockquote><div class="code">上面创建了一个边框效果，设置了左边框，至于５是什么意思，我也不清楚，随便写的。然后放到样式中。</div><div class="code">上面的例子可以参考format.py程序</div><div class="code"><br /></div><div class="code"><p class="postText">其它还有许多的效果，简单地列一下：</p><table style="width: 400px;" border="1" cellspacing="1" cellpadding="1"><tbody><tr><td>&nbsp;示例名</td><td>说明&nbsp;</td></tr><tr><td>&nbsp;col_width.py</td><td>改变单元格宽度&nbsp;</td></tr><tr><td>&nbsp;row_style.py</td><td>设置行的高度&nbsp;</td></tr><tr><td>&nbsp;merged*.py</td><td><p>单元格合并&nbsp;</p></td></tr><tr><td>&nbsp;image.py</td><td><p>插入图片&nbsp;</p></td></tr><tr><td>&nbsp;outline*.py</td><td><p>大纲效果(以前真没用过)&nbsp;</p></td></tr><tr><td>&nbsp;wsprops.py</td><td><p>sheet的属性值打印&nbsp;</p></td></tr><tr><td>&nbsp;xls2*.py</td><td><p>Excel转为其它的文件格式&nbsp;</p></td></tr></tbody></table><p class="postText">大家有兴趣自已照着例子学吧。</p><p class="postText">&nbsp;</p><p class="postText">&nbsp;</p><p class="postText">&nbsp;</p><p class="postText">四： 时间小示例</p><p class="postText">&nbsp;</p><p class="postText">给俺的boss写的一个小工具，使用Python对Excel进行统计，然后把结束生成一个新的Excel表格，使用到了<a href="http://www.lexicon.net/sjmachin/xlrd.htm" target="_blank">xlrd</a>和<a href="http://sourceforge.net/projects/pyexcelerator/" target="_blank">pyExcelerator</a>两个库。<br /> 简单的介绍一下这两个库，先说xlrd，这个库读Excel比较方便，各种方法使用起来也挺方便：<br />bk = xlrd.open_workbook('your.xls')<br /> sh = bk.sheets()[-1]<br />上面两句就可以打开Excel表格中的一个sheet，sheets得到的是一个list，存放所有的sheet。<br />sh.nrows是该sheet中的行数，知道这个后就可以使用for循环来读所有的单元格了：<br />sh.row(i)[3]这个就代表第i行的第4列。<br /> 再看看pyExcelerator，这个用起来有点别扭：<br />sheets = parse_xls('result.xls')<br />先打开一个表格，sheets是一个list，包含了所有表格的内容，每一项就是一个sheet，而每个sheet是二元tuple，第一个是该sheet的名字，第二个是一个dict，dict的key是一个二元组，表示单元格的坐标，如(0,0)，第一行第一列。<br /> 从上面的分析中可以得出要访问Excel中第一个sheet的第一行第一列元素需要：<br />sheets[0][1][(0,0)]<br /> pyExcelerator也不能得到行列数。<br /> 写文件也比较简单：<br />wb = Workbook()<br /> ws = wb.add_sheet('result')<br /> ws.write(0,0,&#8220;hello&#8221;)<br />wb.save('result.xls')<br />就不解释了:-)<br />写文件时需要注意直接写Unicode内容进去，而不要写编码过的内容。<br /> 给boss的代码：PYTHON: <br /> #!/usr/bin/env python<br /> # -*- coding=utf-8 -*-<br /> #Using GPL v2<br /><br /> import xlrd<br /> from pyExcelerator import *<br /><br /> city = [(u'山城','[2,3]d+'),(u'水国','4d+'),(u'火县','5d+'),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (u'土城','6d+'),(u'土国','7d+'),(u'火乡','8[1-5]d+'),<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (u'水乡','8[067]d+'),]<br /><br /> fname = '0107CRM.xls'<br /> bk = xlrd.open_workbook(fname)<br /> sh = bk.sheets()[-1]<br /> nrows = sh.nrows<br /> #result中按顺序存放各city中各套餐的数量<br />#顺序为XTa+、XTb、XTb+<br /> result = []<br /> for i in range(len(city)):<br /> &nbsp;&nbsp;&nbsp; result.append([0,0,0])<br /><br /><br /> for r in range(1,nrows):<br /> &nbsp;&nbsp;&nbsp; num = str(sh.row(r)[3])[7:]<br /> &nbsp;&nbsp;&nbsp; flag = False<br /> &nbsp;&nbsp;&nbsp; for i in range(len(city)):<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if re.match(city[i][1],num):<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flag = True<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if sh.row(r)[2].value == 3001.0:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name = sh.row(r)[0].value.encode('utf8')<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 'XTa＋' in name:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result[i][0]+=1<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 'XTb' in name and 'XTb＋' not in name:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result[i][1]+=1<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 'XTb＋' in name:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result[i][2]+=1<br /> &nbsp;&nbsp;&nbsp; if not flag:<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print "NO:"+num<br /><br /> print result<br /><br /> titles = [u'局向',u'数',u'M录入数',u'X数',&#8230;&#8230;&#8230;&#8230;]<br />wb = Workbook()<br /> ws = wb.add_sheet('result')<br /> for i in range(len(titles)):<br /> &nbsp;&nbsp;&nbsp; ws.write(0,i,titles[i])<br /><br /><span style="color: rgb(0, 0, 255);">for i in range(len(city)):<br /> &nbsp;&nbsp;&nbsp; ws.write(i+1,0,city[i][0])<br /> &nbsp;&nbsp;&nbsp; ws.write(i+1,1,result[i][0])<br /> &nbsp;&nbsp;&nbsp; ws.write(i+1,4,result[i][1])<br /> &nbsp;&nbsp;&nbsp; ws.write(i+1,7,result[i][2])<br /> &nbsp;&nbsp;&nbsp; ws.write(i+1,10,result[i][0]+result[i][1]+result[i][2])<br /> ws.write(i+2,1,"=SUM(B2:B8)")<br /> wb.save('result.xls')</span></p><p class="postText"><br /></p><p class="postText"><span style="color: rgb(51, 51, 51);"><strong>后记:</strong></span></p><p class="postText">python对excel的操作确实不太强大，目前为止我只用过pyExcelerator，还有一个xlrd-xlwt的plugin；貌似这几个对日常简单的excel操作就够用了！</p><p class="postText">最近回头看这篇blog的阅读量还是挺大，今天工作之余写下此后记，希望能和各位python高手们交流，共同提高！</p><p class="postText"><br /></p><p class="postText">excel相关文章：<br /></p><p class="postText">1.xlrd-xlwt模块&nbsp; <span class="link_title"><a title="xlrd读取excel文件(基本功能)" href="http://blog.csdn.net/suofiya2008/article/details/5587386">xlrd读取excel文件(基本功能)</a></span> <br /></p><p class="postText">2. 我同事鱿鱼哥解决excel2007读写的文章<span class="link_title"><a title="openpyxl 读写excel2007使用笔记【感谢鱿鱼哥】" href="http://blog.csdn.net/suofiya2008/article/details/6284208"> openpyxl 读写excel2007使用笔记【感谢鱿鱼哥】</a></span></p></div></div></div><img src ="http://www.blogjava.net/pts/aggbug/420390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2014-11-21 09:35 <a href="http://www.blogjava.net/pts/archive/2014/11/21/420390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EXCEL函数能自动取当前sheet的名字</title><link>http://www.blogjava.net/pts/archive/2014/11/10/419857.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Mon, 10 Nov 2014 02:37:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2014/11/10/419857.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/419857.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2014/11/10/419857.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/419857.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/419857.html</trackback:ping><description><![CDATA[<span style="color: #111111; font-family: Tahoma, Helvetica, 'Microsoft Yahei', SimSun, sans-serif, Hei; background-color: #f3f9f6;">一、=REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),"")</span><br style="word-wrap: normal; color: #111111; font-family: Tahoma, Helvetica, 'Microsoft Yahei', SimSun, sans-serif, Hei; background-color: #f3f9f6;" /><span style="color: #111111; font-family: Tahoma, Helvetica, 'Microsoft Yahei', SimSun, sans-serif, Hei; background-color: #f3f9f6;">二、=MID(CELL("filename"),FIND("]",CELL("filename"))+1,255)</span><img src ="http://www.blogjava.net/pts/aggbug/419857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2014-11-10 10:37 <a href="http://www.blogjava.net/pts/archive/2014/11/10/419857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分类汇总数据单独复制的简便方法</title><link>http://www.blogjava.net/pts/archive/2011/05/12/350111.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Thu, 12 May 2011 11:12:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2011/05/12/350111.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/350111.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2011/05/12/350111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/350111.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/350111.html</trackback:ping><description><![CDATA[From：http://linger.blog.51cto.com/867849/309538<br />
<br />
很多时候需要将分类汇总后的数据单独拿出来做处理，记得还很早的时候有网友在QQ上问过我关于分类汇总要怎么样才能单独复制出来，当时在网上搜索了一下，没找到解决办法，就自己试着做了一遍，发现是可以复制出来单独粘贴的，让他照着我做，他在那头回答不行，咦~为什么他不行，而我就可以？问题出在哪里，难道是版本问题？于是问他，他用的是2003版，跟我一样，奇怪了，经在QQ跟他来回的沟通，终于让我发现问题所在之处，原来我们两人打开新excel表格的方式不同所导致，下面就来说一下我的操作过程：<br />
先做一张分类汇总表（图1）<br />
<img onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)' alt="" src="http://img1.51cto.com/attachment/201005/201005041272981504531.png" onload="if(this.width />650) this.width=650;" border=0>
<div>&nbsp;</div>
<div>再建一张新表，点击&#8220;开始——所有程序——Microsoft &nbsp;Office——Microsoft &nbsp;Office Excel 2003&#8221;（图2）</div>
<div><img onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)' alt="" src="http://img1.51cto.com/attachment/201005/201005041272981934000.png" onload="if(this.width />650) this.width=650;" border=0></div>
<div>&nbsp;</div>
<div>选中分类汇总表上的汇总数据右击&#8220;复制&#8221;后，在新表Book1中选定一个单元格右击&#8220;选择性粘贴&#8221;后跳出选择性粘贴框来（图3）</div>
<div><img onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)' alt="" src="http://img1.51cto.com/attachment/201005/201005041272982313328.png" onload="if(this.width />650) this.width=650;" border=0></div>
<div>&nbsp;</div>
<div>选中&#8220;粘贴&#8221;（一般默认这个选项，如果想让原文件的更改反映到新表上的话可以选择&#8220;粘贴链接&#8221;），在白框里根据需要的格式来选择，这里我们选择&#8220;XML电子表格&#8221;，点击右上角的&#8220;确定&#8221;，瞧~要的结果出来了（图4）</div>
<div><img onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)' alt="" src="http://img1.51cto.com/attachment/201005/201005041272982694468.png" onload="if(this.width />650) this.width=650;" border=0></div>
<div>&nbsp;</div>
<div>那么网友的新excel表格是如何打开的呢，他是在已经打开的excel中选择&#8220;文件——新建——空白工作簿&#8221;，如果他象我一样复制后点击&#8220;选择性粘贴&#8221;会出现（图5）的情况</div>
<div><img onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)' alt="" src="http://img1.51cto.com/attachment/201005/201005041272983194515.png" onload="if(this.width />650) this.width=650;" border=0></div>
<div>&nbsp;</div>
<div>这样就无法单独粘贴复制出来的汇总数据了，也就是说我的两个表格是两个窗口显示，他的两个表格是一个窗口显示，（图6）</div>
<div><img onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)' alt="" src="http://img1.51cto.com/attachment/201005/201005041272985772375.png" onload="if(this.width />650) this.width=650;" border=0></div>
<div>&nbsp;</div>
<div>那是不是他这样就不能单独复制分类汇总数据了呢？呵呵~根据网上资料他这样打开也可以用以下方法来解决这个问题：</div>
<div>1. 将分类汇总的数据全选，编辑-定位-定位条件-可见单元格-复制-粘贴</div>
<div>2. 选中要复制的区域，按F5，定位条件---可见单元格，复制，OK<br />
3. 选中区域--按Alt+;(英文状态下的分号),即可定位可见单元格,然后按 复制--粘贴<br />
4. 工具-自定义-命令-编辑-选定可见单元格，将选定可见单元格 图标拖到工具栏，然后，选择你要复制的区域，点&#8220;选定可见单元格&#8221;，然后&#8220;复制&#8221;、&#8220;粘贴&#8221;，就行了</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以上四种方法步骤有所不同，但都是通过定位——选定可见单元格来实现的，所以结果还是一样。</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此外，还可以把汇总数据复制到WORD或记事本内取消他们的关联性 然后在复制回到EXCEL表中去，这样也不会出现明细，只是复制到新表里的汇总数据都少了数据格式，所以觉得这两种方法不是太好。</div>
<img src ="http://www.blogjava.net/pts/aggbug/350111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2011-05-12 19:12 <a href="http://www.blogjava.net/pts/archive/2011/05/12/350111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]EXCEL中的多条件查询(整理)</title><link>http://www.blogjava.net/pts/archive/2011/03/29/347230.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Tue, 29 Mar 2011 10:48:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2011/03/29/347230.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/347230.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2011/03/29/347230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/347230.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/347230.html</trackback:ping><description><![CDATA[EXCEL中的多条件查询(整理)from：<a href="http://hi.baidu.com/binaryfan/blog/item/54dbf7099971cdc63ac7635f.html">http://hi.baidu.com/binaryfan/blog/item/54dbf7099971cdc63ac7635f.html</a>
<div style="font-size: 12px; font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; line-height: 18px; margin-top: 5px; margin-right: 0px; margin-bottom: 8px; margin-left: 0px; color: #666666; " id="">2009-08-17 21:32</div>
<table style="font-size: 1.06em !important; table-layout: fixed; width: 960px; ">
    <tbody style="font-size: 1.06em !important; ">
        <tr style="font-size: 1.06em !important; ">
            <td style="font-size: 12px; font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; line-height: 18px; ">
            <div id="blog_text" class="cnt" style="font-size: 14px; font-family: Arial; word-wrap: break-word; word-break: normal; visibility: visible !important; zoom: 1 !important; filter: none; line-height: 20px; color: #336666; text-decoration: none; overflow-x: hidden; overflow-y: hidden; position: static; ">
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">在EXCEL里面有多个方法可以完成多条件查询，先来了解合并数组这个概念：</p>
            <p style="font-size: 1.06em !important; line-height: normal; ">如果Sheet2是这样的：</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">A&nbsp;<wbr style="font-size: 1.06em !important; line-height: normal; ">,B&nbsp;<wbr style="font-size: 1.06em !important; line-height: normal; ">,C<wbr style="font-size: 1.06em !important; line-height: normal; "></p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">张三，一月，90</p>
            <p style="font-size: 1.06em !important; line-height: normal; ">张三，二月，85</p>
            <p id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousewheel" style="font-size: 1.06em !important; line-height: normal; ">张三，三月，95</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">那么If({1,0},Sheet2!A1:A3&amp;Sheet2!B1:B3,Sheet2!C1:C3)就是：</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">张三一月，90</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">张三二月，85</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">张三三月，95</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">也可以用Choosen({1,2},Sheet2!A1:A3&amp;Sheet2!B1:B3,Sheet2!C1:C3),结果相同。现在就可以用vlookup来进行多条件查询了：</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">{=vlookup(A1&amp;B1,If({1,0},Sheet2!A1:A3&amp;Sheet2!B1:B3,Sheet2!C1:C3),2,false)}</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">还可以用sum函数直线多条件合计功能：</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">{=sum((Sheet2!A1:A3=A1)*(Sheet2!B1:B3=B1)*Sheet2!C1:C3)}</p>
            <p id="" style="font-size: 1.06em !important; line-height: normal; ">这个功能也很有意思，另外还可以用index+match来解决，有一个值得一提的小技巧是，对于长的公式需要同时按Ctrl+Shift+Enter来给单元内容加上{}</p>
            <p style="font-size: 1.06em !important; line-height: normal; ">在理解上述公式之前需要理解if({1,0},......)公式的含义，见下：</p>
            <div style="font-size: 12px; font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; line-height: normal; ">
            <h1 style="font-size: 1.06em !important; line-height: normal; ">IF({1,0},&#8230;&#8230;)公式的解释</h1>
            </div>
            <div style="font-size: 12px; font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; line-height: normal; ">
            <table cellspacing="0" cellpadding="0" style="font-size: 1.06em !important; table-layout: auto; line-height: normal; ">
                <tbody style="font-size: 1.06em !important; line-height: normal; ">
                    <tr style="font-size: 1.06em !important; line-height: normal; ">
                        <td id="" style="font-size: 12px; font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; line-height: normal; "><font size="4" style="font-size: 1.06em !important; line-height: normal; "><font color="#800080" id="" style="font-size: 1.06em !important; line-height: normal; ">把它分解为一块一块，把相关的知识一一弄明白，合起来一定能明白。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        1、IF(条件,返回值1,返回值2)<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        首先你要弄懂这个函数，如果条件为真，函数的结果为&#8220;返回值1&#8221;，如果条件为假，函数的结果是&#8220;返回值2&#8221;：<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        if(true,10,100)=10<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        if(1,"A","B")="A"<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        if(false,20,30)=30<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        if(0,"你","我")="我"<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        2、{1,2,3,4}是一个数组，一个数组能存储多个数值，数组的表示方式是{}。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        {1,0｝是个水平数组，它有两个值，一个是1，另一个是0。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        {"张三","李四","王五"}也是一个水平数组，它有三个值。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        3、连接符&amp;也是这个公式中的一个知识点。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        "A" &amp; "B" &amp; "C"="ABC"<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        "Aaa"&amp;"Bcd"&amp;"123"="AaaBcd123"<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        字符串可以连接，数组也可以连接：<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        {1,2,3}&amp;{"A","B","C"}={"1A","2B","3C"}<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        单元格区域也可以连接：<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        假如A1:A10的数据为1到10，B1:B10的数据为a到j。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        A1:A10&amp;B1:B10的结果就是<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        1a<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        2b<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        3c<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        ...<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        10j<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        再看个实际点的例子：&nbsp;</font></font><br style="font-size: 1.06em !important; line-height: normal; " />
                        <img src="http://bbs.17500.net/attachments/day_070731/20070731_0c464b642eece5808609AkXFw0JXiUhY.gif" id="" style="font-size: 1.06em !important; line-height: normal; " alt="" /><br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <font size="4" style="font-size: 1.06em !important; line-height: normal; "><font color="#800080" id="" style="font-size: 1.06em !important; line-height: normal; ">4、再回过来说IF()函数<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        当条件是一个单变量时，总代表true和false，即&#8220;真&#8221;和&#8220;假&#8221;，它总是返回两个值当中的一个。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        但是<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        但是，当条件不是单变量，而是一个数组时，当条件为{1,0}时，结果如何呢？<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        记住，返回的结果与条件一样，是个数组，而且，与条件数组的列数相同。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        课堂上，老师说：同学们好，我们来做个游戏，当老师举起左手的时候，你说&#8220;语文&#8221;，当老师举起右手的时候，你说100，清楚了没有？同学们都说清楚了，于是：<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        老师举起左手，一同学回答&#8220;语文&#8221;：If(左手,"语文",100)="语文"<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        老师的话隐含了一层意思，左手为真，右手为假，左手为1，右手为0：If(1,"语文",100)="语文"<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        接下去的游戏自然还有：If(右手,"语文",100)=100<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        即 If(0,"语文",100)=100<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        轮到第三个同学了，老师把两只手都举了起来，那么这同学怎么回答？<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        也许这位同学会说&#8220;老师，你有病？&#8221;当然，我更希望这位同学能回答：&#8220;语文&#8221;，100。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        不是么：IF（{左手,右手},"语文",100)={"语文",100}<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        前面提过，左手是真，右手是假，写标准点，就是：<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        IF（{true,false},"语文",100)={"语文",100}<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        也是：IF（{1,0},"语文",100)={"语文",100}<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        你糊涂了吗？<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        没有？<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        没有就好。别钻牛角尖，这个比方打得可能不太合适。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        接着，老师还会把游戏继续做下去，再把规则改一改：老师举左手的时候，回答科目，举右手的时候，回答成绩。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        老师举起左手，同学D回答：语文、数学、英语、计算机<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        老师举起右手，同学E回答：100、90、95、80<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        这时，老师把左右手都举了起来，老师说，如果懂了，请正确说出结果。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        于是，有同学回答："语文",100;"数学",90;"英语",95;"计算机",80<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        老师满意极了。<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        用我们熟悉的方式表现出来，就是：<br style="font-size: 1.06em !important; line-height: normal; " />
                        <br style="font-size: 1.06em !important; line-height: normal; " />
                        =IF({1,0},科目,成绩)={"语文",100;"数学",90;"英语",95;"计算机",80}</font></font></td>
                    </tr>
                </tbody>
            </table>
            </div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/pts/aggbug/347230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2011-03-29 18:48 <a href="http://www.blogjava.net/pts/archive/2011/03/29/347230.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>excel vba程序中，如何返回最后一列不为空的列的列号</title><link>http://www.blogjava.net/pts/archive/2008/09/04/226997.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Thu, 04 Sep 2008 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2008/09/04/226997.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/226997.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2008/09/04/226997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/226997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/226997.html</trackback:ping><description><![CDATA[<a href="http://www.excelpx.com/dispbbs.asp?boardid=5&amp;id=19422">[原创]vba程序中，如何返回最后一列不为空的列的列号[Microsoft Excel精英论坛]</a><br /><blockquote>Nextcol=Cells(1,255).End(xlToLeft).Column '取从cells(1,255)向左查找到的第一个非空值单元格的列数，不含cells(1,255)，与连续与否无关，没查到时返回第一列列号<br /><br />Nextcol=Cells(1,1).End(xlToright).Column '取从cells(1,1)向右查找到的第一个非空值单元格的列数，不含cells(1,1)，与连续与否无关，没查到时返回最后一列列号<br /><br />Nextcol=Cells(65536,1).End(xlup).row '取从cells(65536,1)向上查找到的第一个非空值单元格的行数，不含cells(65536,1)，与连续与否无关，没查到时返回第一行行号<br /><br />Nextcol=Cells(1,1).End(xldown).row '取从cells(1,1)向下查找到的第一个非空值单元格的行数，不含cells(1,1)，与连续与否无关，没查到时返回最后一行行号</blockquote><img src ="http://www.blogjava.net/pts/aggbug/226997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2008-09-04 16:16 <a href="http://www.blogjava.net/pts/archive/2008/09/04/226997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>excel技巧</title><link>http://www.blogjava.net/pts/archive/2008/07/17/215462.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Thu, 17 Jul 2008 05:23:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2008/07/17/215462.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/215462.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2008/07/17/215462.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/215462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/215462.html</trackback:ping><description><![CDATA[1、选中多个单元格，在最后一个单元格中输入内容，按ctrl+endter，全部单元格内容都填充了<br />
<br />
2、选中一个区域，按ctrl+D<br />
<br />
3、在最下面的左侧，点右键，列出sheet列表<br />
<br />
4、复制超链接后，粘贴或录入一个超链接，要取消链接，按ctrl+z<br />
<br />
5、选 工具--自定义后，在工具栏中某个按钮，点右键，可修改快捷键<br />
<br />
6、页面设置中，可以设置打印时打印行、列数字<br />
<br />
7、选一个区域，按shift，选编辑，出现复制为图片<br />
<br />
8、不显示页面中的0值，在工具——选项——试图中，勾掉&#8220;零值&#8221;<br />
<br />
9、同一个文件中不同sheet间作超链接：输入公式hyprelink（&#8220;#&#8221;&amp;&#8220;目标sheet目标单元格&#8221;，&#8220;链接名&#8221;），例如：=HYPERLINK("#"&amp;"'1 出口计划'!A14","zhmd")<br />
<br />
10、插入工作表：shift+F11<br />
<br />
11、向下填充CTRL+D<br />
&nbsp;&nbsp;&nbsp;
向右填充CTRL+R<br />
&nbsp;&nbsp;&nbsp; 查找和替换 CTRL+H <br />
&nbsp;&nbsp;&nbsp; 将选定区域扩展一个单元格宽度SHIFT+ 箭头键<br />
&nbsp;&nbsp;&nbsp; 选定区域扩展到单元格同行同列的最后非空单元格CTRL+SHIFT+ 箭头键<br />
<br />
&nbsp;&nbsp;&nbsp;
Ctrl+'&nbsp;&nbsp;复制上一單元格的內容&lt;不含格式&gt;<br />
&nbsp;&nbsp;&nbsp;
Ctrl+D&nbsp; 复制上一單元格的內容&lt;含格式&gt;<br />
&nbsp;&nbsp;&nbsp; Ctrl+Shift＋。&#8221;　復制左邊的單元格<br />
<br />
12、Ctrl+* 全選當前工作區域后(用其他方法选择的区域也可)，Ctrl+.(Ctrl+点)可以顺序定位在所选区域 的四个角<br />
<br />
13、Alt+178<br />
&nbsp;&nbsp;&nbsp; Alt+179&nbsp;&nbsp;&nbsp;&nbsp; 分别完成数值的2次方和3次方的表示<br />
&nbsp;&nbsp;&nbsp; alt+0177&nbsp;&nbsp;&nbsp; 输入正负号<br />
&nbsp;&nbsp;&nbsp; Alt+41420&nbsp; &nbsp;即&#8220;&#8730;&#8221;<br />
<br />
&nbsp;&nbsp;&nbsp; ctrl+shift+p&nbsp; 调整大小<br />
&nbsp;&nbsp;&nbsp; ctrl+shift+f&nbsp; 字体<br />
&nbsp;&nbsp;&nbsp; Ctrl+F3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 定义名称<br />
&nbsp;&nbsp;&nbsp; Alt+向下键&nbsp;&nbsp;&nbsp; 显示清单的当前列中的数值下拉列表<br />
&nbsp;&nbsp;&nbsp; F12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另存为<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; ctrl+9——隐藏行，加shift是反操作，要是中间有其他操作，又要取消隐藏，请先选隐藏区上下/左右<br />
&nbsp;&nbsp;&nbsp; ctrl+0——隐藏列<br />
<br />
&nbsp;&nbsp;&nbsp; SHIFT+F10&nbsp; &nbsp;&nbsp; &nbsp;显示快捷菜单<br />
<br />
&nbsp;&nbsp;&nbsp; CTRL+PAGE DOWN&nbsp; &nbsp;&nbsp; &nbsp;选择下一工作表<br />
&nbsp;&nbsp;&nbsp; CTRL+PAGE UP&nbsp; &nbsp; &nbsp; &nbsp; 选择上一工作表<br />
<br />
&nbsp;&nbsp;&nbsp; Ctrl+[&nbsp; &nbsp;查看该单元格中的公式 引用了哪些单元格<br />
&nbsp;&nbsp;&nbsp;
Ctrl+]&nbsp;&nbsp; 查看该单元格被哪些单元格引用了<br />
<br />
&nbsp;&nbsp;&nbsp;
<br />
<br />
14、去掉EXCEL中的软回车(ALT+enter)
<br />
&nbsp;&nbsp;&nbsp; 利用查找替换&nbsp;在查找框中按入ALT+10(小键盘),在替换中什么也不输,点击替换,就行了
<img src ="http://www.blogjava.net/pts/aggbug/215462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2008-07-17 13:23 <a href="http://www.blogjava.net/pts/archive/2008/07/17/215462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>word不能另存、表格断开等技巧</title><link>http://www.blogjava.net/pts/archive/2008/01/31/178623.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Thu, 31 Jan 2008 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2008/01/31/178623.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/178623.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2008/01/31/178623.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/178623.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/178623.html</trackback:ping><description><![CDATA[<h2>试试：</h2>
打开 C:\Documents and Settings\你的用户名\Application Data\Microsoft\Templates文件夹，就可以看到Normal.dot模板文件了，删除Normal.dot模板，重新打开WORD！<br />
<br />
表格断开：<br />
在要断开的行，按ctrl+shift+回车（这个快捷键知道后很爽！）<br />
<br />
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
<img src ="http://www.blogjava.net/pts/aggbug/178623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2008-01-31 10:05 <a href="http://www.blogjava.net/pts/archive/2008/01/31/178623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VBA中初始化ADO连接的几种方法</title><link>http://www.blogjava.net/pts/archive/2007/02/01/97357.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Thu, 01 Feb 2007 13:16:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2007/02/01/97357.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/97357.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2007/02/01/97357.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/97357.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/97357.html</trackback:ping><description><![CDATA[VBA中初始化ADO连接的几种方法<br />
<br />
VBA中初始化ADO连接的几种方法有以下几种：<br />
<br />
1．通过CreateObject方法来创建连接，具体代码如下：<br />
<br />
Dim
conn1<br />
<br />
Set conn1 = CreateObject("ADODB.Connection.2.0")
<br />
<br />
2．通过使用Dim ... as ...方法来创建连接<br />
<br />
Dim conn2 As
ADODB.Connection<br />
<br />
Set conn2 = New ADODB.Connection<br />
<br />
3．通过使用Dim
... as ... New的方法来创建连接<br />
<br />
Dim conn3 As new
ADODB.Connection<br />
<br />
CreateObject方法比DIM方法速度要慢，其好处是你不需要在工程中引用ADO对象。<br />
<br />
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
<img src ="http://www.blogjava.net/pts/aggbug/97357.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2007-02-01 21:16 <a href="http://www.blogjava.net/pts/archive/2007/02/01/97357.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Excel的几个函数</title><link>http://www.blogjava.net/pts/archive/2006/11/10/80517.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Fri, 10 Nov 2006 15:12:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2006/11/10/80517.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/80517.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2006/11/10/80517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/80517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/80517.html</trackback:ping><description><![CDATA[<p>这几天用excel做表格数据，用到了几个函数，用法记下：<br />
1、vlookup（目标值，查找区域，第n列，是否模糊查找）<br />
在 <span style="text-decoration: underline;">查找区域</span> 第一列查找 <span style="text-decoration: underline;">目标值</span>，返回? <span style="text-decoration: underline;">查找区域?</span> <span style="text-decoration: underline;">第n列</span> 的值。默认是<span style="text-decoration: underline;">模糊查找</span>。<br />
2、hlookup<br />
基本同上，行列转换一下。<br />
3、isna（值）<br />
有些公式的结果是 ＃N/A，如果不希望显示这个结果，但不能直接用"＝＃N/A"来判断，可以先用isna（公式）来判断，再用if判断。</p>
<p class="zoundry_bw_tags">
<!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com -->
<span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://technorati.com/tag/excel" class="ztag" rel="tag">excel</a></span> <br />
<span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a href="http://del.icio.us/tag/excel" class="ztag" rel="tag">excel</a></span>
</p>
<img src ="http://www.blogjava.net/pts/aggbug/80517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2006-11-10 23:12 <a href="http://www.blogjava.net/pts/archive/2006/11/10/80517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>粗读候先生的word艺术</title><link>http://www.blogjava.net/pts/archive/2006/11/10/80516.html</link><dc:creator>pts</dc:creator><author>pts</author><pubDate>Fri, 10 Nov 2006 15:10:00 GMT</pubDate><guid>http://www.blogjava.net/pts/archive/2006/11/10/80516.html</guid><wfw:comment>http://www.blogjava.net/pts/comments/80516.html</wfw:comment><comments>http://www.blogjava.net/pts/archive/2006/11/10/80516.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pts/comments/commentRss/80516.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pts/services/trackbacks/80516.html</trackback:ping><description><![CDATA[<p>最重要的几点：</p>
<ul>
    <li>节的概念，如何增加节。</li>
    <li>样式的概念，先定义，在使用，有快捷键</li>
    <li>生成目录，章节目录<br />
    </li>
</ul>
<p>没有用到的就是：题注，引用等。</p>
<p>不过好像没有看到如何删除节？<br />
</p>
<img src ="http://www.blogjava.net/pts/aggbug/80516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pts/" target="_blank">pts</a> 2006-11-10 23:10 <a href="http://www.blogjava.net/pts/archive/2006/11/10/80516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>