Как увеличить ширину столбца по умолчанию для файла CSV, чтобы при открытии файла весь текст помещался правильно? - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь закодировать функцию, в которой я получаю данные из моей базы данных, которая уже работает правильно.

Это мой код для заголовков до добавления фактических записей:

        with open('csv_template.csv', 'a') as template_file:
        #declares the variable template_writer ready for appending
        template_writer = csv.writer(template_file, delimiter=',')
        #appends the column names of the excel table prior to adding the actual physical data
        template_writer.writerow(['Arrangement_ID','Quantity','Cost'])
    #closes the file after appending
    template_file.close()

Это мой код для записей, который содержится в цикле while и является основной причиной того, что два сценария хранятся отдельно.

            with open('csv_template.csv', 'a') as template_file:
            #declares the variable template_writer ready for appending
            template_writer = csv.writer(template_file, delimiter=',')
            #appends the data of the current fetched values of the sql statement within the while loop to the csv file
            template_writer.writerow([transactionWordData[0],transactionWordData[1],transactionWordData[2]])
        #closes the file after appending
        template_file.close()

Теперь, когда я подготовил эти данные для Excel, яЗапустите файл в Excel, и я хотел бы, чтобы он был в формате, в котором я могу печатать немедленно, однако, когда я действительно печатаю, ширина столбца ячеек Excel слишком мала и приводит к обрезанию во время печати. ​​

Я попытался изменить ширину столбца по умолчанию в Excel и надеюсь, что он сохранит этот формат навсегда, но это не так, и каждый раз, когда я заново открываю файл CSV в Excel, кажется, что он полностью сбрасываетсявернуться к ширине столбца по умолчанию.

Вот мой код для открытия файла CSV в Excel с использованием Python, и комментарий является фактическим кодомЯ хочу использовать, когда действительно смогу отформатировать электронную таблицу, готовую к печати. ​​

    #finds the os path of the csv file depending where it is in the file directories
    file_path = os.path.abspath("csv_template.csv")
    #opens the csv file in excel ready to print
    os.startfile(file_path)
    #os.startfile(file_path, 'print')

Если у кого-то есть какие-либо решения или идеи, пожалуйста, дайте мне знать.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Формат csv - это не что иное, как текстовый файл, где строки следуют заданному шаблону, то есть фиксированному количеству полей (ваших данных), разделенных запятой. В отличие от этого .xlsx файл представляет собой двоичный файл, который содержит спецификации о формате. Поэтому вы можете захотеть записать в файл Excel, используя богатую библиотеку панд .

0 голосов
/ 19 ноября 2018

К сожалению, я не думаю, что это возможно для форматов файлов CSV, поскольку они являются просто значениями, разделенными запятыми и не поддерживают форматирование.

Я попытался изменить ширину столбца по умолчанию в пределахExcel, но каждый раз, когда я снова открываю файл CSV в Excel, кажется, что он возвращается к ширине столбца по умолчанию.

Если вы сохраните файл в формате Excel после того, как отредактируете его,решить эту проблему.

В качестве альтернативы, вместо использования библиотеки csv вы можете использовать xlsxwriter, вместо которого делает , позволяя вам устанавливать ширину столбцов в вашем коде.

См. https://xlsxwriter.readthedocs.io и https://xlsxwriter.readthedocs.io/worksheet.html#worksheet-set-column.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...