Tag: python

文件不写,除非我设置跟踪和等待

我有一个奇怪的问题,试图用Python编写一个xlsx文件。 我正在使用Python 2.7.x和xlsxwriter来编写xlsx文件。 以下是上下文的代码片段: workbook = xlsxwriter.Workbook('filename.xlsx') worksheet = workbook.add_worksheet('worksheet_name') worksheet.write_row('A1', make_header_row) // <—- ROW 1 … // initialize "fields" array worksheet.write_row('A2', fields) // <—- ROW 2 所以这里是问题: 第1行写入,没有问题。 第2行永远不会被写入… 除非我坚持一个import pdb; pdb.set_trace() import pdb; pdb.set_trace()就在我写第2行的上方。在pdb等待import pdb; pdb.set_trace()秒,然后点击continue将导致成功写入第二行 。 我试着在write_row之后write_row flush工作簿,确保文件close …没有任何工作。 感谢您的任何帮助,您可以提供!

使用来自excel的调用者的xlwings错误

我想从Excel使用调用Python代码 wb = xw.Book.caller() 如果文件path是英文的,就可以运行。 但是,如果path具有其他语言,则会在Errorpopup窗口中显示 ————————— Error ————————— C:\Anaconda2\lib\site-packages\xlwings\main.py:2692: UnicodeWarning: Unicode unequal comparison failed to convert both arguments to Unicode – interpreting them as being unequal throw = (os.path.normpath(os.path.realpath(impl.fullname.lower())) != os.path.normpath(fullname.lower())) Traceback (most recent call last): File "<string>", line 1, in <module> File "test.py", line 13, in plot_chart wb = xw.Book.caller() File "C:\Anaconda2\lib\site-packages\xlwings\main.py", line […]

使用xlsxwriterclosures然后使用xlrd读取excel文件后,无法读取公式的值

在fisrt中,我使用xlsxwriter在一个单元格中写入一个简单的公式,并closures* .xlsx文件。 然后我尝试读取单元格的值,但只在同一个程序中使用xlrd从单元格中读取“0”。 如果我在单元格中读取一些固定值(如string或常数),那么效果很好。 如果我在* .xlsx文件中手动创build公式单元格,则xlrd也可以获取公式的值。 看来,只有当我写一个forumla到* .xlsx然后在同一个程序中读取,我才能读取公式单元格的值。 Python:3.4.3 xlrd:1.0.0 xlsxwriter:0.9.3 import xlrd import xlsxwriter name = 'abc.xlsx' sheet_name = 'sheet1' # write a formula in 'D1' as '=A1+C1' out_book = xlsxwriter.Workbook(name, {'im_memory': True}) out_sheet = out_book.add_worksheet(sheet_name) out_sheet.write('A1', 1) out_sheet.write('C1', 2) out_sheet.write_formula(0, 3, '=A1+C1') out_book.close() #After closing excel, read the cell tmp = xlrd.open_workbook(name) sheet […]

我无法使用openpyxl读取数据,但可以在手动保存目标文件后读取数据

我在openpyxl上遇到了一个奇怪的现象。 有谁知道如何解决它? (1)我想操纵从外部网站下载的xlsx文件(如银行交易,这里提供xlsx格式)。 然后我想用openpyxl提取数据。 (2)这是我的代码。 wb = xl.load_workbook(file, data_only=True, read_only=True) ws = wb[sh] print( ws.cell(column=col, row=row).value ) (3)我运行这个代码。 那么结果是“无”。 (4)我打开文件并确认有数据。 (5)我保存文件(没有任何改变)。 (6)我再次运行代码。 那么结果不是“无”,而是存储在xlsx中的数据。 这很好,但是我觉得这个操作每次打开和保存一次都是很单调的。 我读了像'data_only','use_iterators','read_only'的选项可能会改变返回的值。 我试着评论一些结果,看结果是否改变,但不是原因。 有谁知道解决scheme?

xlwings的python,我不明白规则之一

我可以清楚地知道rng[0, 0]和rng[1] ,但是为什么呢? 为什么rng[:, 3:]切片为$D$1:$D$5 ? 为什么rng[1:3, 1:3]是$B$2:$C$3 ,我不明白切片的规则。 Range indexing/slicing Range objects support indexing and slicing, a few examples: rng = xw.Book().sheets[0].range('A1:D5')

无法使用MATPLOTLIB从EXCEL PLOT多个数据

我有一个1000行和300列的Excel文件。 我想绘制(第1列)vs(第2列到第288列); 我的第一列是我的X轴,其余的列在Y轴上。 我的代码在下面; 我没有显示。 没有错误信息。 from openpyxl import load_workbook import numpy as np import matplotlib.pyplot as plt wb = load_workbook('CombinedData1.xlsx') sheet_1 = wb.get_sheet_by_name('CombinedData') x = np.zeros(sheet_1.max_row) y = np.zeros(sheet_1.max_row) a = np.zeros(sheet_1.max_column) b = np.zeros(sheet_1.max_column) print (sheet_1.max_row) print (sheet_1.max_column) for i in range(0, sheet_1.max_row): for j in range(1, 7): x[i] = sheet_1.cell(row=i + 1, […]

读pandasencryptionexcel

我正在用python通过encryption的excel文件扫描数据。 我想在不打开excel的情况下阅读文件内容。 这是我的代码。 我通常使用pandas来读取文件,但pandas.read_excel不允许添encryption码。 from xlrd import * import win32com.client import csv import sys xlApp = win32com.client.Dispatch("Excel.Application") xlwb = xlApp.Workbooks.Open(path1+file_name, Password='password') 谢谢

INSERT IGNORE不适用于我的脚本

我有这个python脚本谁插入xcell数据到MySQL数据库,但我只需要插入不重复的行,所以我用INSERT IGNORE SQL方法也尝试与ON DUPLICATE KEY UPDATE,但它不起作用,它只是插入表中的所有数据。 这是脚本: import xlrd import MySQLdb #Seting the database connection database = MySQLdb.connect (host="localhost", user = "root", passwd = "****", db = "python_insert") cursor = database.cursor() query = """INSERT IGNORE INTO test (masina,data_ora,conbustibil) VALUES (%s,%s,%s)""" #Open and parse the xcell file book = xlrd.open_workbook("asset/testing.xlsx") sheet = book.sheet_by_name("Report") for r in […]

如何在terminalshell中显示Excel的下拉值?

我目前有一个脚本,有一个用户input值通过Python的Excel表,然后将该表复制到一个新的文件。 在原来的Excel表中,有一个值我试图填充由Excel的下拉列表组成。 我想在terminalshell里向用户显示这个值的下拉列表,然后让用户select一个。 当前代码: policy_master = raw_input('Which master does this Standard reference? (Please ' 'choose from one of the following below:') print "Script now starting" new_file = standard_name + ".xlsx" data_input = (("Planning", "phase"), (standard_name,"Version_Name"), (version,"Version"), (policy_owner, "Policy_Document Owner"), ("IT Risk Leaders", "Approval_Body"), (project_manager, "Project_Manager"), ("001", "Version_History"), ("Standard", "Document_Type"), ("IT_Governance", "Trigger"), (policy_master, "Policy_Document_Master_Reference")) filename = […]

将文本字段parsing为excel列

我试图parsing超过20,000条logging的数据。 每个logging有4个字段,前面加上2个字母数字值。 下面是一个2logging的例子。 我目前有一个臃肿的解决scheme,使用基于这里的链接的Java: 使用JavaparsingHTML数据(DOMparsing) 。 但是我不打算使用这个解决scheme,因为这只是分离logging而已。 有没有一种解决scheme,使用VBS,Python或任何其他语言,可以根据我已经使用的逻辑分开领域? 还是另一个逻辑的方法 100000000 SMP008483 |— Category Western |— Model Ford |— Asset Delivered Date ? |— Scheduled ? 100000001 SMP008484 |— Category Eastern |— Model Chevrolet |— Asset Delivered Date ? |— Scheduled ? 预期的输出在这里: ID1 ID2 Category Model Asset Delivered Date Scheduled 100000000 SMP008483 Western Ford ? […]