last_row = cursor.execute("SELECT MAX(id) FROM {}".format(data41)).fetchone()[0] # 将文本框中的内容按行写入表格的第一列 for i, line in enumerate(text.split("\n")): if line.strip() != "": # 第一行不写入 if i != 0: # 执行SQL插入语句,将数据写入表格的第一列(不写入ID字段) cursor.execute("INSERT INTO {} (點檢内容) VALUES (?)".format(data41), (line.strip(),)) # 将下拉输入框中的内容按行写入表格的后续列 start_index = None for i, value in enumerate(combobox_values): # 检查当前行是否为空 if text.split("\n")[i + 1].strip() == "" and start_index is None: # 记录第一个空白行的索引 start_index = i + 1 # 开始插入数据 if start_index is not None and i >= start_index: # 执行SQL插入语句,将数据写入表格的后续列 cursor.execute( "UPDATE {} SET 點檢狀態 = ?, 點檢日期 = ?, 點檢時間 = ?, 點檢人 = ?, 點檢綫別 = ?, 點檢班別 = ?, 機種 = ?, 點檢表名稱 = ?, IP地址 = ?, 用戶名 = ?".format( data41), (value, data1, data2, data3, data4, data5, data6, sheet_name, ip_address, username))將這兩個循環修改為一個循環,
时间: 2024-02-14 18:27:20 浏览: 233
你可以将这两个循环合并为一个循环来简化代码,如下所示:
```python
for i, line in enumerate(text.split("\n")):
if line.strip() != "":
# 第一行不写入
if i != 0:
# 检查当前行是否为空
if i < len(combobox_values) + 1:
# 执行SQL插入语句,将数据写入表格的第一列(不写入ID字段)
cursor.execute("INSERT INTO {} (點檢内容) VALUES (?)".format(data41), (line.strip(),))
else:
index = i - len(combobox_values) - 1
value = combobox_values[index]
# 执行SQL插入语句,将数据写入表格的后续列
cursor.execute(
"UPDATE {} SET 點檢狀態 = ?, 點檢日期 = ?, 點檢時間 = ?, 點檢人 = ?, 點檢綫別 = ?, 點檢班別 = ?, 機種 = ?, 點檢表名稱 = ?, IP地址 = ?, 用戶名 = ?".format(
data41),
(value, data1, data2, data3, data4, data5, data6, sheet_name, ip_address, username))
```
这段代码将先处理文本框中的内容,将其写入表格的第一列。然后,根据下拉输入框的内容,将数据写入表格的后续列。通过计算索引,可以确定需要更新的行数。
阅读全文