首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pygsheets在Google工作表中旋转文本?

如何使用pygsheets在Google工作表中旋转文本?
EN

Stack Overflow用户
提问于 2019-06-18 03:14:11
回答 1查看 443关注 0票数 1

我正在尝试使用python中的pygsheets来旋转Google工作表中一些长标题名称的文本。下面的代码显示了对pygsheets中提供的示例的轻微修改,根据文档,这些示例应该可以工作。文本写入正确的单元格,单元格A1为粗体,但单元格B1和C1不旋转。没有出现错误消息。知道为什么这不管用吗?

代码语言:javascript
复制
import pygsheets

sheet_url = "https://docs.google.com/spreadsheets/d/1t3nYyvkVkf6E36vTRucRQ35XQWbeRC--6U5h1chtikI"
gc = pygsheets.authorize(service_file = "credentials.json")
sh = gc.open_by_url(sheet_url)
wks = sh.worksheet("title", "Sheet1")

header = wks.cell('A1')
header.value = 'Bold Text'
header.set_text_format('bold', True)
header.update()

header2 = wks.cell('B1')
header2.value = '45 Degree rotated text'
header2.set_text_rotation('angle', 45)
header2.update()

header3 = wks.cell('C1')
header3.value = 'Vertical Text'
header3.set_text_rotation('vertical', True)
header3.update()

结果:结果电子表格

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-18 06:07:28

  • 您希望在pyghseets中使用Sheets的"textRotation“。

如果我的理解是正确的,那么这个答案呢?在我的环境中,我还可以确认您也发生了同样的问题。所以当我看到"pygsheets“的脚本时,我注意到了脚本的修改点。

尽管设置了textRotation的参数,但不幸的是,textRotation没有包含在请求体中。这样,textRotation就不能工作了。

修改脚本:

使用此修改时,请修改安装的"pygsheets“目录中的get_json() of cell.py,如下所示。我认为可能有更简单的修改。因此,请把这看作是几个答案中的一个。

代码语言:javascript
复制
def get_json(self):
    """Returns the cell as a dictionary structured like the Google Sheets API v4."""
    try:
        nformat, pattern = self.format
    except TypeError:
        nformat, pattern = self.format, ""

    if self._formula != '':
        value = self._formula
        value_key = 'formulaValue'
    elif is_number(self._value):
        value = self._value
        value_key = 'numberValue'
    elif type(self._value) is bool:
        value = self._value
        value_key = 'boolValue'
    elif type(self._value) is str or type(self._value) is unicode:
        value = self._value
        value_key = 'stringValue'
    else:   # @TODO errorValue key not handled
        value = self._value
        value_key = 'errorValue'

    ret_json = dict()
    ret_json["userEnteredFormat"] = dict()

    if self.format[0] is not None:
        ret_json["userEnteredFormat"]["numberFormat"] = {"type": getattr(nformat, 'value', nformat),
                                                         "pattern": pattern}
    if self._color[0] is not None:
        ret_json["userEnteredFormat"]["backgroundColor"] = {"red": self._color[0], "green": self._color[1],
                                                            "blue": self._color[2], "alpha": self._color[3]}
    if self.text_format is not None:
        ret_json["userEnteredFormat"]["textFormat"] = self.text_format
        fg = ret_json["userEnteredFormat"]["textFormat"].get('foregroundColor', None)
        if fg:
            ret_json["userEnteredFormat"]["textFormat"]['foregroundColor'] = {"red": fg[0], "green": fg[1],
                                                                              "blue": fg[2], "alpha": fg[3]}

    if self.borders is not None:
        ret_json["userEnteredFormat"]["borders"] = self.borders
    if self._horizontal_alignment is not None:
        ret_json["userEnteredFormat"]["horizontalAlignment"] = self._horizontal_alignment.value
    if self._vertical_alignment is not None:
        ret_json["userEnteredFormat"]["verticalAlignment"] = self._vertical_alignment.value
    if self._wrap_strategy is not None:
        ret_json["userEnteredFormat"]["wrapStrategy"] = self._wrap_strategy

    ### Added -- begin
    if self.text_rotation is not None:
        ret_json["userEnteredFormat"]["textRotation"] = self.text_rotation
    ### Added -- end

    if self._note is not None:
        ret_json["note"] = self._note
    ret_json["userEnteredValue"] = {value_key: value}

    return ret_json

结果:

当反映上述修改时,您的脚本将获得以下结果。

注意:

  • 这个修改后的脚本假设Sheets已经能够被使用。
  • 在将pygsheets更新为"pygsheets-2.0.1“之后,我研究了上面的修改。

参考文献:

在我的环境中,我可以通过上述修改来确认"textRotation“。但如果这在你的环境下行不通,我很抱歉。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56641290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档