Вопрос:
Я хочу написать лист Excel через pywin32. Я могу сделать это на самом деле без проблем. Но я не мог форматировать диапазон ячеек в листе. Я хочу выровнять значения по центру внутри ячеек. А также мне нужно заполнить ячейки цветом. Как мне это сделать?
Заранее спасибо.
Лучший ответ:
Я специально не делал этого с помощью python раньше, но я предполагаю, что вы используете интерфейс автоматизации COM, чтобы преуспеть.
На этой странице есть пример, который, как представляется, охватывает как выравнивание, так и заполнение ячеек цветом в С#, поэтому его довольно легко адаптировать к python. Предполагая, что у вас есть объект Worksheet, называемый листом, а объект автоматизации Excel называется Excel, я предполагаю, что он может выглядеть примерно так:
//Format A1:D1 as center alignment, sheet.Range(«A1», «D1»).VerticalAlignment = Excel.XlVAlign.xlVAlignCenter sheet.Range(«A1», «D1»).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter sheet.Range(«A1», «D1»).Interior.ColorIndex = Excel.XlColorIndex.Red
Если у вас нет доступа к константам Excel.XlAlign и XlColorIndex из python, вы можете просто заменить их на конкретные целые числа, которые они представляют, хотя я не уверен, откуда вы могли их получить. Возможно, из справочного сайта VBA или аналогичного. (Хотя эта ссылка, которую я предоставил, по-видимому, не позволяет вам расширять каждую из записей в списке, поэтому вам может понадобиться искать в другом месте)
EDIT: Просто поиграл с автоматизацией excel через консоль python, и, похоже, все в порядке:
>>> from win32com.client import Dispatch >>> xlApp = Dispatch(«Excel.Application») >>> xlWb = xlApp.Workbooks.Add() >>> xlSht = xlWb.WorkSheets(1) >>> xlSht.Range(«A1», «D1»).VerticalAlignment = 1 >>> xlSht.Range(«A1», «D1»).Interior.ColorIndex = 6 >>> # The background color of A1-D1 should now be yellow >>> xlSht.Cells(1, 1).VerticalAlignment = 1
Если вы не можете найти какую-либо хорошую ссылку на то, что представляют собой различные константы выравнивания/цвета, тогда я просто буду играть с python на консоли, как это, а затем открыть полученный рабочий лист в Excel и посмотреть на результаты, чтобы увидеть вещи.
Вы можете найти официальную ссылку для API автоматизации Office 2003 здесь. В частности, вы, вероятно, найдете наиболее подходящую документацию диапазона.