Python MS Excel读写

时间:2014-05-14 15:18:03

标签: python excel

我有以下方案可供使用:

存在一个包含大量列的模板excel文件,每个文件都有列名。我有一些数据存储在MySQL中,我想将数据插入适当的列。我知道MySQLdb可以用来链接python中的MySQL,但是有什么好办法可以用EXCEL操作吗?

它与csv不同,所以我不确定是否有任何好的解决方案。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

来自http://www.python-excel.org/

有一些python包可用于处理任何Python平台上运行的Excel文件,并且不需要使用Windows或Excel。它们快速,可靠且开源:

  • xlrd :此软件包用于从Excel文件中读取数据和格式信息。
  • xlwt :此软件包用于将数据和格式信息写入Excel文件。
  • xlutils :此软件包收集需要xlrd和xlwt的实用程序,包括复制,修改或过滤现有Excel文件的功能。

Google Group致力于使用Python中的Excel文件,包括上面列出的库以及通过COM操作Excel应用程序。

对于这类事情,Google通常比StackOverflow更好......

答案 1 :(得分:0)

我认为以下步骤可以完成这项工作:

  1. 打开MS excel。
  2. 读取excel文件中的列名
  3. 根据您在MySQL中的数据编写相关数据。
  4. 对于第1步,可以从xlrd

    获得帮助

    对于第2步,请参考以下代码:

        # read excel and get appropriate sheet
        rb = xlrd.open_workbook(filename, on_demand=True, formatting_info=True)
        my_sheet = rb.sheet_by_name(u'template name')
    
        # get column names in item_list        
        item_list = my_sheet.row_values(1)
        nrows = my_sheet.rows
        ncolumns = my_sheet.columns
        key_index = item_list.index('A')
        value_index = item_list.index('B') # of course 'C' and 'D' if needed
    

    对于step3,可以使用index来获取每一行的值

        wb = copy(rb)
        ws = wb.get_sheet(i) # get related sheet to write
        for row in nrows:
            key = my_sheet[row][key_index]
            ....
    

    如果需要,请参阅my application