Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2019, 10:43   #1
masha7777
 
Регистрация: 26.10.2019
Сообщений: 9
По умолчанию Разделить значение одной колонки на 2 значения

Привет. как из одной колонки сделать чтоб инфа после двоеточия отборажалась в соседней колонке?
Заранее спасибо
Код:
from PyQt5 import QtCore, QtWidgets
import os
from openpyxl import load_workbook


class MyDialog(QtWidgets.QDialog):
    def __init__(self, parent=None):
        QtWidgets.QDialog.__init__(self, parent)
        self.myWidget = QtWidgets.QTableWidget(self)
        self.button = QtWidgets.QPushButton("Загрузить данные")
        mainBox = QtWidgets.QVBoxLayout()
        mainBox.addWidget(self.myWidget)
        mainBox.addWidget(self.button)
        self.setLayout(mainBox)
        self.button.clicked.connect(self.on_clicked)

    def on_clicked(self):
        file = 'data.xlsx'
        wb = load_workbook(os.path.join(os.getcwd(), file), read_only=True)
        ws = wb.active

        # заголовки столбцов
        headers = [item.value for item in ws[3] if item.value is not None]

        data = []
        # данные
        for row in ws[89:97]:
            print(row)
            data.append(row)

        # заполнение таблицы
        self.myWidget.setColumnCount(len(headers))
        #self.myWidget.setHorizontalHeaderLabels(headers)
        for x, rows in enumerate(data):
            if rows[0].value is not None:
                self.myWidget.setRowCount(self.myWidget.rowCount()+1)

                for y, cell in enumerate(rows):
                    val = cell.value
                    if val is not None:
                        val = val.replace('0.0000', '  ')
                        val = val.replace(',,,', ' ')
                        val = val.replace(',', ' ')
                        val = val.replace('Контракт', '1.Контракт')
                        item = QtWidgets.QTableWidgetItem(str(val))

                        self.myWidget.setColumnCount(2)
                        self.myWidget.setItem(self.myWidget.rowCount() -1, y, item)
                        self.myWidget.setItem(self.myWidget.rowCount() + 1, y, item)

        # изменение размеров окна
        self.resize(self.frameGeometry().width() + self.myWidget.frameGeometry().width(),
                    self.frameGeometry().height() + self.myWidget.frameGeometry().height())


if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    window = MyDialog()
    window.setWindowTitle('COMPANY')
    window.resize(300, 100)
    window.show()
    sys.exit(app.exec_())
masha7777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбиение данных из одной колонки на восемь zenner Microsoft Office Excel 7 27.06.2014 12:34
Текст из Memo (1 колонка) разделить на 2 колонки FleXik Общие вопросы Delphi 5 17.02.2014 15:24
колонки одной высоты neg5 JavaScript, Ajax 4 13.02.2012 20:20
[код] Процессы и PID , нужно разделить на 2 колонки. Человек_Борща Общие вопросы Delphi 7 28.02.2010 23:16
Из одной колонки сделать две acidcool SQL, базы данных 5 24.08.2009 15:08