<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Win32com on 计步啦</title>
    <link>http://www.99steps.cn/tags/win32com/</link>
    <description>Recent content in Win32com on 计步啦</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <copyright>Vika Zhou</copyright>
    <lastBuildDate>Wed, 11 Oct 2023 00:00:00 +0000</lastBuildDate>
    <atom:link href="http://www.99steps.cn/tags/win32com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>在python使用win32com库来读取excel</title>
      <link>http://www.99steps.cn/posts/use-win32com-to-read-excel-in-python/</link>
      <pubDate>Wed, 11 Oct 2023 00:00:00 +0000</pubDate>
      <guid>http://www.99steps.cn/posts/use-win32com-to-read-excel-in-python/</guid>
      <description>&lt;p&gt;在python语言读取excel的有多种库可以实现。这里在windows下通过&lt;code&gt;pywin32&lt;/code&gt;调用Microsoft Excel软件的COM对象接口来实现，使用的API与VBA类似。&lt;/p&gt;&#xA;&lt;h2 id=&#34;安装pywin32库&#34;&gt;安装pywin32库&lt;/h2&gt;&#xA;&lt;p&gt;python下安装库首选使用&lt;code&gt;pip&lt;/code&gt;。如果使用virtualenv的话，也可以先为工程一个新的virtualenv, 再在virtualenv环境中安装。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python -m pip install pywin32&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;打开excel文件读取单元格内容&#34;&gt;打开Excel文件，读取单元格内容&lt;/h2&gt;&#xA;&lt;p&gt;读取excel的流程， 肯定是先打开一个文件， 创建workbook对象， 再从workbook中获取worksheet对象，worksheet即sheet页，然后读取worksheet中的单元格内容。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; win32com.client&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 连接excel应用，不显示窗口&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;xl_app &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; win32com&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;client&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;DispatchEx(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Excel.Application&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;xl_app&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;DisplayAlerts &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;xl_app&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Visible &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 打开文件&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;workbook &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; xl_app&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Workbooks&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Open(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;some.xlsx&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;worksheet &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; workbook&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Worksheets(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Sheet1&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#打印单元格内容&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(worksheet&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Range(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;A1&amp;#39;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#关闭&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;workbook&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Close(&lt;span style=&#34;color:#66d9ef&#34;&gt;False&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;xl_app&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Quit()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;获取单元格属性&#34;&gt;获取单元格属性&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cell &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; worksheet&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Range(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;A1&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 坐标&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Address)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 是否为合并单元格&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;MergeCells:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;MergeArea, cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;MergeArea&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Columns&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Count, cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;MergeArea&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Rows&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Count)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 对齐方式&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;HorizontalAlignment)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 字体&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Bold, cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Size)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 背景色&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(cell&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;Interior&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;ColorIndex)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;microsoft-vba-参考&#34;&gt;Microsoft VBA 参考&lt;/h1&gt;&#xA;&lt;p&gt;Excel中API中使用还是得看官方文档，请访问 &lt;a href=&#34;https://learn.microsoft.com/en-us/office/vba/api/excel.range(object)&#34;&gt;https://learn.microsoft.com/en-us/office/vba/api/excel.range(object)&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
