0

使用下面的代码,我可以获得要打印的数据。如何将代码切换到 xlrd?

如何修改此代码以使用已打开且可见的 xls 文件。因此,首先手动打开文件,然后运行脚本。

并且,得到更新。

然后被推入Mysql

import os
from win32com.client import constants, Dispatch
import numpy as np

#----------------------------------------
# get data from excel file
#----------------------------------------
XLS_FILE = "C:\\xtest\\example.xls"
ROW_SPAN = (1, 16)
COL_SPAN = (1, 6)
app = Dispatch("Excel.Application")
app.Visible = True
ws = app.Workbooks.Open(XLS_FILE).Sheets(1)
xldata = [[ws.Cells(row, col).Value 
              for col in xrange(COL_SPAN[0], COL_SPAN[1])] 
             for row in xrange(ROW_SPAN[0], ROW_SPAN[1])]
#print xldata
a = np.asarray(list(xldata), dtype='object')
print a
4

2 回答 2

1

如果您的意思是要修改当前文件,我 99% 确定这是不可能的,并且 100% 确定这是一个坏主意。为了更改文件,您需要具有写入权限。Excel 创建文件锁定以防止异步和同时编辑。如果一个文件在 Excel 中打开,那么唯一应该修改该文件的是... Excel。

如果您的意思是要读取当前在编辑器中的文件,那么这是可能的——您通常可以获得对正在使用的文件的读取权限,但这同样是不明智的——如果用户没有保存,那么用户将看到一组数据,而您将在磁盘上拥有另一组数据。

虽然我不是 VB 的粉丝,但对于这个应用程序来说,这是一个更好的选择——使用宏将数据直接从 Excel 插入 MySQL。就个人而言,我会创建一个仅具有插入权限的用户,然后我会尝试本教程

于 2011-08-04T22:58:23.457 回答
0

如果你想操作一个已经打开的文件,为什么不使用 COM?

于 2011-10-19T16:40:09.620 回答