Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29

Первая пустая строка эксель файла

30.06.2021, 19:28. Показов 8434. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите какой код написать чтобы найти первую пустую строчку в эксель файле
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.06.2021, 19:28
Ответы с готовыми решениями:

Построчное чтение из файла, в токором первая строка пустая
Читаю построчно файл и заношу значения из строк в переменные istringstream in(ios_base::in | ios_base::out); ostream...

Если первая строка пустая
Добрый день! как написать если первая строка пустая?

Откуда первая пустая строка в новом файле?
Помогаю знакомому, написал программку. Она должна вывести какие то строки на экран + вывести все в новый файл, но строки в обратном...

21
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
01.07.2021, 09:23
Pans1es, вы через что работаете?
Я бы сделал так:
1. Сделал цикл который перебирает строки по значению
2. Выход из цикла по первому None
3. Запись

Добавлено через 4 минуты
Не претендую на правильность, но после напильника работает
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import openpyxl
import win32com.client
import os
 
# запись будем вести в calc.xlsx
# определим есть ли вообще такой файл calc.xlsx
check_file = os.path.exists("calc.xlsx")
# проверка наличия файла прошла неудачно
if check_file == False:
   # создаем новый файл
   wb = openpyxl.Workbook()
   wb.save("calc.xlsx")
   # говорим пользователю, что файла не было и мы его создали
   print("calc.xlsx файла не было имы его создали")
# создаем СОМ объект экселя, открываем книгу и делаем ее видимой
Excel = win32com.client.Dispatch("Excel.Application")
path = os.path.abspath('calc.xlsx')
wb = Excel.Workbooks.Open(path)
# делаем книгу видимой (можно 0, тогда вы ее и видеть не будете)
Excel.Visible = 1
# работаем с активной страницей
sheet = wb.ActiveSheet
 
# например есть данные val_array
val_array = [1,2,3,4,5]
 
 
# ищем пустую строку для записи в файле экселя
i = 1
while i < 1000:
   # т.е. столбец постоянно 1, а строку мы ищем перебором
   val = sheet.Cells(i, 1).value
   if val == None:
       break
   i = i + 1
# когда мы нашли пустую строку
# нам в цикле нужно его заполнить
# данными из списка 
k = 1
for rec in val_array:
   sheet.Cells(i, k).value = rec
   k = k + 1
 
wb.Save()# сохраним
wb.Close()# и закроем
 
#Закроем COM объект
Excel.Quit()
Добавлено через 2 минуты
Pans1es, все-таки почитайте главу 12 из книги Эл Свейгард "Автоматизация рутинных задач с помощью Python "
0
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
01.07.2021, 11:39
Python
1
2
3
4
import pandas as pd
df = pd.read_excel('myBook.xlsx', sheetname='list1')
id_nan = df.index[df.isnull().all(1)]
print(id_nan[0])
1
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
01.07.2021, 12:04
Цитата Сообщение от Михалыч Посмотреть сообщение
Я бы сделал так:
теперь я бы сделал как Gdez
1
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29
01.07.2021, 14:17  [ТС]
Gdez, выдает такую ошибку. IndexError: index 0 is out of bounds for axis 0 with size 0

Добавлено через 28 минут
Михалыч, у меня есть код.И есть эксель файл со словами и их переводом. Там 11 строчек.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def start():
    print('Выберите пункт меню, введя число: ')
    print('1 – Создать карточку')
    print('2 – Поменять карточку')
    print('3 - Вывести список слов')
    return
 
 
dictonary = dict()
while True:
    start()
    n = int(input('введите пункт меню: '))
    if n == 1:
        word = input('введите слово на английском: \n')
        tran = input('введите его перевод на русском: \n')
        dictonary[word] = tran
 
    elif n == 2:
        word = input('введите слово, которое нужно заменить: \n')
        tran = input('введите его перевод: \n')
        dictonary[word] = tran
 
    elif n == 3:
        print(*dictonary.keys(), sep='\n')
    else:
        break
Можешь пожалуйста сделать так чтобы когда я добавлял новое слово и его перевод,чтобы программа находила первую пустую строчку и добавляла слово и его перевод в таблицу эксель и сохраняла их
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
01.07.2021, 16:14
Pans1es, так посмотрите мой пример) вместо 25 строки
Python
1
val_array = [1,2,3,4,5]
вставляйте свои данные
0
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29
01.07.2021, 16:54  [ТС]
Михалыч, а можете пожалуйста вставить. Я не очень понял что вставлять

Добавлено через 1 минуту
Михалыч, мне надо вставить именно то когда я добовляю новые слова. Надо чтобы они вставились в таблицу эксель файла
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
01.07.2021, 17:31
Цитата Сообщение от Pans1es Посмотреть сообщение
Я не очень понял что вставлять
возьмите пока что-то попроще, дойдите до такого примитивизма, что вам будет понятно и от туда начните наращивать задачу.

Опять таки не верх идеала (лень переписывать), но работоспособно под ваш запрос, на основе того что я уже приводил.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import openpyxl
import win32com.client
import os
 
# запись будем вести в calc.xlsx
# определим есть ли вообще такой файл calc.xlsx
check_file = os.path.exists("calc.xlsx")
# проверка наличия файла прошла неудачно
if check_file == False:
   # создаем новый файл
   wb = openpyxl.Workbook()
   wb.save("calc.xlsx")
   # говорим пользователю, что файла не было и мы его создали
   print("calc.xlsx файла не было имы его создали")
# создаем СОМ объект экселя, открываем книгу и делаем ее видимой
Excel = win32com.client.Dispatch("Excel.Application")
path = os.path.abspath('calc.xlsx')
wb = Excel.Workbooks.Open(path)
# делаем книгу видимой (можно 0, тогда вы ее и видеть не будете)
Excel.Visible = 1
# работаем с активной страницей
sheet = wb.ActiveSheet
 
# сделаем добавление в словарь
dictonary = dict()
while True:
   print("______________________________")
   word = input('введите слово на английском: \n')
   tran = input('введите его перевод на русском: \n')
   dictonary[word] = tran
 
 
   # ищем пустую строку для записи в файле экселя
   i = 1
   while i < 1000:
      # т.е. столбец постоянно 1, а строку мы ищем перебором
      val = sheet.Cells(i, 1).value
      if val == None:
          break
      i = i + 1
   # когда мы нашли пустую строку
   # нам в цикле нужно его заполнить
   # последними данными из словаря 
   sheet.Cells(i, 1).value = word
   sheet.Cells(i, 2).value = tran
 
wb.Save()# сохраним
wb.Close()# и закроем
 
#Закроем COM объект
Excel.Quit()
Добавлено через 1 минуту
Надеюсь понятно, если что пишите)
0
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29
01.07.2021, 17:58  [ТС]
Михалыч, смотри,когда я запускаю код то у меня сначала открывается эксель файл а потом когда я его закрываю только выходит окно для написания слов и перевода. Можешь сделать так чтоб сначала я писал слово и перевод,эти слова сохранялись в эксел файл и потом он уже открывался с этими новыми словами
0
 Аватар для Михалыч
1011 / 355 / 59
Регистрация: 28.02.2013
Сообщений: 937
01.07.2021, 18:04
Pans1es, можно сделать все) опишите задачу по пунктам, т.е. что за чем следует.
0
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29
01.07.2021, 18:14  [ТС]
Михалыч, я программу создаю на подобе английских карточек для изучения новых слов пользователей.Ну вот у меня есть код,который я скидывал сверху. Там под пунктом 1 "добавить карточку",появляется "написать слово на английском " и потом "написать его перевод(это должен писать типа пользователь)". Потом уже прграмма сама должна открыть эксель файл(в этом эксель файле уже есть таблица со словами и их перевод). Дальше нужно найти первую свободную строчку в эксел файле и сохранить туда новые слова( то есть которые мы писали под пунктом 1) и потом уже сохранить и закрыть файл. И так чтобы можно было бесконечно добовлять слова и программа их запоминала и добавляла в эксель файл.
0
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
01.07.2021, 18:19
Pans1es, попробуй так (дополнительно 5 строчек)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import pandas as pd
 
def start():
    print('Выберите пункт меню, введя число: ')
    print('1 – Создать карточку')
    print('2 – Поменять карточку')
    print('3 - Вывести список слов')
    return
 
 
################ чтение xlsx в датафрейм, затем в словарь
# если словарь удобнее. Хотя можно прямо во фрейме все выполнить
# и перезаписать в xlsx
path = 'res.xlsx'
sheet='Лист1'
df = pd.read_excel(path, sheet_name=sheet, header=None, index_col=None)
dictonary = dict(df.values.tolist())
################
 
 
while True:
    start()
    n = int(input('введите пункт меню: '))
    if n == 1:
        word = input('введите слово на английском: \n')
        tran = input('введите его перевод на русском: \n')
        dictonary[word] = tran
 
    elif n == 2:
        word = input('введите слово, которое нужно заменить: \n')
        tran = input('введите его перевод: \n')
        dictonary[word] = tran
 
    elif n == 3:
        print(*dictonary.keys(), sep='\n')
    else:
        break
 
############### запись словаря в xlsx
df = pd.DataFrame.from_dict(dictonary, orient='index').reset_index(level=0)
with pd.ExcelWriter(path) as writer:
    df.to_excel(writer, sheet_name=sheet, header=None, index=None)
###############
1
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29
01.07.2021, 18:24  [ТС]
Gdez, все норм,только надо чтоб слова сохранялись в эксель файле,потому что когда я выхожу из программы то эти слова не сохраняются
0
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
01.07.2021, 18:27
Pans1es, пробовал код?
Вот без словаря
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import pandas as pd
 
def start():
    print('Выберите пункт меню, введя число: ')
    print('1 – Создать карточку')
    print('2 – Поменять карточку')
    print('3 - Вывести список слов')
    return
 
 
################ чтение xlsx в датафрейм
path = 'res.xlsx'
sheet='Лист1'
df = pd.read_excel(path, sheet_name=sheet, header=None, index_col=0)
################
 
 
while True:
    start()
    n = int(input('введите пункт меню: '))
    if n == 1:
        word = input('введите слово на английском: \n')
        tran = input('введите его перевод на русском: \n')
        df.loc[word] = tran
 
    elif n == 2:
        word = input('введите слово, которое нужно заменить: \n')
        tran = input('введите его перевод: \n')
        df.loc[word] = tran
 
    elif n == 3:
        print(df)
    else:
        break
 
############### запись словаря в xlsx
df.reset_index(level=0, inplace=True)
with pd.ExcelWriter(path) as writer:
    df.to_excel(writer, sheet_name=sheet, header=None, index=None)
###############
1
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29
01.07.2021, 18:31  [ТС]
Gdez, у меня слово и перевод сохраняется только когда я нажимаю вывести список слов,а нужно чтоб еще сохранялось и в эксель файле,чтоб когда программа останавливалась то слова не проподали
0
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
01.07.2021, 19:08
Pans1es, в коде :
- считывание xlsx-файла
- в цикле while "манипуляции" с этим файлом (добавление, изменение, вывод на экран)
- при выходе из while сохранение измененного файла в xlsx-файл

При работе кода сам xlsx-файл должен(!) быть закрыт.
0
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29
01.07.2021, 19:17  [ТС]
Gdez, он у меня закрыт. Слова не сохраняются в эксель файле
0
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
01.07.2021, 19:38
Pans1es, Pans1es, path "прописывается" полностью, если не "лежит" в одном каталоге с кодом.
И sheet должен соответствовать реальному
Мой файл вместе с кодом в одном каталоге (папке), поэтому в коде "просто" его наименование
0
0 / 0 / 0
Регистрация: 23.06.2021
Сообщений: 29
01.07.2021, 21:09  [ТС]
Gdez, такой же путь может быть? 'D:\PyCharm_projects/card.xlsx'

Добавлено через 1 час 1 минуту
Gdez, вот у Михалыча получилось открыть эксель файл. Только у него не в том порядке,сначала надо записать а потом только окрыть,а у него получилось наоборот

Добавлено через 3 минуты
Михалыч, можешь пожалуйста исправитМихалыч, а нет,у михалыча все верно
0
Эксперт Python
8837 / 4489 / 1864
Регистрация: 27.03.2020
Сообщений: 7,311
01.07.2021, 21:20
Pans1es,
Gdez, такой же путь может быть? 'D:\PyCharm_projects/card.xlsx'
Нет
Python
1
'D:\\PyCharm_projects\\card.xlsx'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.07.2021, 21:20
Помогаю со студенческими работами здесь

При записи в таблицу первая строка пустая
Есть программа на подобии адресной книжки без привязки к внешним БД и есть проблема. При нажатии на кнопку &quot;сохранить&quot; значения...

Почему в некоторых сайтах первая строка html документа пустая?
День или вечер добрый. Подскажите, может в этом какой-то секрет таится? Почему первая строка пустая? Не раз это замечаю.

Почему возращается пустая строка при чтении ini-файла?
Всем привет. Непойму почему мне возращается пустая строка.К примеру есть переменная: const char *mystr; Бустом я читаю INI: ...

Обменяйте местами элементы следующих строк: первая строка – n-я строка, вторая строка – (n-1)-я строка, третья
2. Обменяйте местами элементы следующих строк: первая строка – n-я строка, вторая строка – (n-1)-я строка, третья строка – (n-2)-я строка и...

При вводе из файла проверить, следующая строка пустая или нет
Можно ли как-нибудь проверить является ли следующая строка при вводе, например, текста из файла пустой. Допустим: &gt;Он любил кататься...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru