代码之家  ›  专栏  ›  技术社区  ›  cph_sto

自动化加载步骤。用Python在Excel中创建csv文件

  •  0
  • cph_sto  · 技术社区  · 7 年前

    我得装很多 .csv 定期将文件导入Excel,如图所示 here (till step 9) -

    擅长 -> 数据 -> 来自文本 -> “通过导航到文件的位置,然后单击“导入”来选择文件。” 文本导入向导第1步,共3步

    这些都是我通过编写一个小python脚本自动完成的步骤,在这个脚本中,我让python按快捷键(想象一下在没有鼠标的情况下工作,并通过按快捷键在Excel中导航)。

    import pyautogui
    from pywinauto.application import Application
    app = Application().start('C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.exe')
    pyautogui.press('alt')
    pyautogui.press('a')
    pyautogui.press('f')
    pyautogui.press('t')
    pyautogui.typewrite(r'C:\Users\Jo\Revenue.txt')
    pyautogui.press('enter')
    

    在运行了上述python脚本之后,我看到了以下内容 导入向导 窗口-

    Import Wizard

    现在,我如何让python做出选择 65001 : Unicode (UTF-8) 从下拉列表中?如何在python代码中指定选择这种编码?如有任何意见,我们将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  0
  •   quest    7 年前

    我将这样做。添加 UTF-8 with BOM 文件开头将自动指示excel在 file origin 下拉列表:

    import codecs
    import pyautogui
    
    from pywinauto.application import Application
    from pywinauto.keyboard import SendKeys
    
    from time import sleep
    
    filename = r'C:\path\excel_automation\data1.txt'
    global content
    
    def add_utf8_bom(filename):
        with codecs.open(filename, 'r', 'utf-8') as f:
            content = f.read()
        with codecs.open(filename, 'w', 'utf-8') as f2:
            f2.write('\ufeff')
            f2.write(content)
    
    add_utf8_bom(filename)
    app = Application().start(r'C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE')
    sleep(1)
    #SendKeys('^n') #uncomment for excel 2016 or higher
    sleep(1)
    pyautogui.press('alt')
    pyautogui.press('a')
    pyautogui.press('f')
    pyautogui.press('t')
    pyautogui.typewrite(filename)
    pyautogui.press('enter')
    

    信用证: https://stackoverflow.com/a/29900075/4551984