Найти - Пользователи
Полная версия: Создание файла exel с именем из переменной
Начало » Python для новичков » Создание файла exel с именем из переменной
1
BCnuHy
Подскажите. Не могу решить проблему: мне нужно чтобы программа создавала exel файл с именем, которое записано в переменной. Имя файла - это текущая дата. Соответственно, имя меняется каждый день. Столкнулся с тем, что либо файл создаётся с нужным именем, но в формате “.22”, либо формат будет “.xls”, но имя ему нужно присваивать вручную.

 # Создание переменной с текущей датой и временем:
qtime = time.strftime("%d.%m.%y")
print(qtime)
#Создание файла с именем переменной форматом "22":
with open(qtime, 'w') as file:
  file.write('')
# Создание exel файла вручную с именем 111.xlsx:
fn = '111.xlsx'
wb = load_workbook(fn)
ws = wb['data']
ws['C1'] = qtime
wb.save(fn)
wb.close
AD0DE412
 #не испульзуйте имена типа file это зарезервированое имя
with open(f'{qtime}.xls', 'w') as f:
    f.write('')
py.user.next
BCnuHy
мне нужно чтобы программа создавала exel файл с именем, которое записано в переменной. Имя файла - это текущая дата. Соответственно, имя меняется каждый день.
Отнесись к имени файла, как к простой строке, которая не является именем файла. Просто конструируй какую-то строку с датой. А когда сконструируешь её, тогда она просто подаётся в функцию создания файла на месте имени файла.
  
>>> import datetime
>>> 
>>> date = '{:%d.%m.%Y}'.format(datetime.datetime.now())
>>> print(date)
12.12.2022
>>> 
>>> filename = 'file_at_{}.xls'.format(date)
>>> print(filename)
file_at_12.12.2022.xls
>>>
BCnuHy
py.user.next
Отнесись к имени файла, как к простой строке, которая не является именем файла. Просто конструируй какую-то строку с датой. А когда сконструируешь её, тогда она просто подаётся в функцию создания файла на месте имени файла.
Спасибо за идею. решение было очень и очень простым
 qtime = time.strftime("%d.%m.%y")
qtime = qtime + '.xlsx'
BCnuHy
py.user.next
Отнесись к имени файла, как к простой строке, которая не является именем файла. Просто конструируй какую-то строку с датой. А когда сконструируешь её, тогда она просто подаётся в функцию создания файла на месте имени файла.
хотя формально задача решена, и после точки в имени файла идёт вроде-бы нужный формат “.xlsx”, но создаваемый файл остаётся в формате “.хренпоймичто” и не читается EXELем.

BCnuHy
BCnuHy
хотя формально задача решена, и после точки в имени файла идёт вроде-бы нужный формат “.xlsx”, но создаваемый файл остаётся в формате “.хренпоймичто” и не читается EXELем.
Проблема решена путём подключения и использования pandas
 import pandas as pd
df = pd.DataFrame()
df.to_excel(file_name)

py.user.next
BCnuHy
создаваемый файл остаётся в формате “.хренпоймичто” и не читается EXELем.
Формат XLSX - это архив zip, в котором запакованы файлы и директории, описывающие один xlsx-файл. Большинство файлов там - это файлы в формате XML, в которых размечены данные и форматы этих данных. Поэтому ты не можешь туда просто что-то записать. Сначала нужно создать дерево файлов и директорий, потом в файлы записать что-то определённым образом с определённой разметкой в формате XML, а потом надо упаковать это всё архиватором zip в один xlsx-файл и тогда его можно будет открывать в программах типа Excel и LibreOffice Calc.

Для создания xlsx-файлов в питоне есть два модуля.
https://pypi.org/project/openpyxl/
https://openpyxl.readthedocs.io/en/stable/

https://pypi.org/project/XlsxWriter/
https://xlsxwriter.readthedocs.io/


tags: xlsx
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB