从txt文件写入excel2007,后台打印顺序正常,但是打开excel实际数据没有按照顺序排列

发布于 2022-09-05 02:36:27 字数 2188 浏览 24 评论 0

openpyxl的版本是:openpyxl-2.5.0a1
我的目的是将txt中的文本写入excel中,其实是一个自己想实现的一个小功能
但是从txt文件写入excel2007,后台打印顺序正常,但是打开excel实际数据没有按照顺序排列。
一直想不通,所以向大家提问。
图片描述

图片描述

图片描述

图1 是txt打开的, 图2是生成后excel文件,图三是后台运行打印的数据。
图三在【E1】打印了Remark,这个不知道如何出现的,余下的,是按照正常的顺序打印。但是到了excel中出现了顺序不一致的情况。望大牛解答。感谢!

import openpyxl

loadActive = open('F:\\pythoncode\\ActivityList.txt', encoding="utf-16")
wb = openpyxl.load_workbook('F:\\pythoncode\\example_1.xlsx')
# ' '.join(ActiveList)

dataActive = loadActive.readlines()

sheet = wb.get_active_sheet()
c = []
for i in range(len(dataActive)):
    c += dataActive[i].split('\t')

j = 1
columnNum = 1
for i in range(int(len(c))):
    if i < 3:
        sheet.cell(row = j,column = columnNum).value = c[i]
        columnNum += 1
    else:
        if i % 4 == 0:
            j += 1
            columnNum = 1
            sheet.cell(row = j,column = columnNum).value = c[i]
            print(sheet.cell(row = j,column = columnNum))
            print(c[i])
        else:
            sheet.cell(row = j,column = columnNum).value = c[i]
            columnNum += 1
            print(sheet.cell(row = j,column = columnNum))
            print(c[i])

loadActive.close()
wb.save('F:\\pythoncode\\example_1.xlsx')

Id    ActivityId    TimeDesc    Remark
int_cs    int_c    string_c    string
note    Actid    timessss    memo
1    2    9:00-9:40    hello1
2    13    10:00-10:40    hello2
3    43    11:30-11:45    hello3
4    22    12:00-14:00    hello4
5    43    12:30-12:45    hello5
6    2    15:00-15:40    hello6
7    13    16:00-16:40    hello7
8    43    17:30-17:45    hello8
9    22    18:00-20:00    hello9
10    43    18:30-18:45    hello10
11    25    20:15    hello11
12    23    20:30-20:45    hello12
13    1    20:45-21:15    hello13

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我是男神闪亮亮 2022-09-12 02:36:27
import openpyxl

loadActive = open('F:\\pythoncode\\ActivityList.txt', encoding="utf-16")
wb = openpyxl.load_workbook('F:\\pythoncode\\example_1.xlsx')
# ' '.join(ActiveList)

dataActive = loadActive.readlines()

print(dataActive)

sheet = wb.get_active_sheet()
c = []
#this loop to solve the \t and \n      

 for i in range(len(dataActive)):
    c1 = dataActive[i].rstrip('\n')
    c += c1.split('\t')
    print(c[i])
print(c)

j = 1
columnNum = 1
for i in range(int(len(c))):
#delete simplified the logic
    if i % 4 == 0:
        j += 1
        columnNum = 1

    sheet.cell(row = j,column = columnNum).value = c[i]
    columnNum += 1

loadActive.close()
wb.save('F:\\pythoncode\\example_1.xlsx')

这样处理打印完整了,但是会引出空行。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文