我最近把它作为一个教我自己如何用Python编程的项目.总的来说,我必须说我对它印象深刻.
在过去,我通常坚持使用VBA进行编程,主要是为了MS Excel(但也有点在MS Access和Word中),并且一直在努力寻找方法使其能够通过单个命令轻松完成Python所做的事情.
我想知道是否有合理的方法来利用Python的编程能力和易用性,同时利用Office中的各种工具(主要是Excel)?
下面是一个简单的片段,用于打开一个 .xlsm 文件,用 python 向它写入一些值,然后保存它。
import openpyxl
from openpyxl import load_workbook
def toExcel():
wb = load_workbook(filename="C:\\Users\\Mark\\Documents\\Test.xlsm")
ws = wb.worksheets[0]
ws.cell(row=1, column=1).value = 'foo'
ws['A2'] = 'bar'
wb.save("C:\\Users\\Mark\\Documents\\Test1.xlsm")
toExcel()
Run Code Online (Sandbox Code Playgroud)
当文件打开并保存时,它提到文件格式无效/损坏且无法打开。如果 .xlsm 从 wb.save 中删除,它会在选择 excel with Open With 后保存并打开。为什么文件格式无效?
使用openpyxl,我试图从Excel工作簿中读取数据并将数据写入同一个Excel工作簿.从Excel-Workbook获取数据工作正常,但将数据写入Excel-Workbook不起作用.使用下面的代码,我从Cell A1中获取值Sheet1并打印出来.然后,我尝试把一些值进入细胞A2和A3.这不起作用.
from openpyxl import Workbook
from openpyxl import load_workbook
wb = load_workbook("testexcel.xlsm")
ws1 = wb.get_sheet_by_name("Sheet1")
#This works:
print ws1.cell(row=1, column=1).value
#This doesn't work:
ws1['A2'] = "SomeValue1"
#This doesn't work either:
ws1.cell(row=3, column=1).value = "SomeValue2"
Run Code Online (Sandbox Code Playgroud)
我确信代码是正确的......这里出了什么问题?