Вопрос по ms-word, python, excel, character – Нежелательный персонаж в Excel Cell In Python

2

У меня проблема с настройкой значения Excel Cell. Я получаю данные из ячейки таблицы в документе MS-Word (dcx) и печатаю их на консоли вывода.

Проблема заключается в том, что данные ячейки - это просто слово «час», без видимых других начальных или конечных печатных символов, таких как пробелы. Но когда я печатаю его с помощью функции python print (), он показывает неожиданный символ, более похожий на маленький & quot;? & Quot; в прямоугольнике.

Я не знаю, откуда она взялась.

И когда я записываю ту же переменную, которая содержит слово «час», в ячейку Excel она показывает жирную точку (.в клетку.

В чем может быть проблема?

Буду признателен за любую оказанную помощь.

Я использую Python 3.2 и PyWin32 3.2 на Win7. Благодарю.

@sarnold, возвращает 72 111 117 114 13. Aashiq Hussain
Если вы перебираете каждый символ в строке и запускаетеord(char) на каждом, какие значения возвращаются? sarnold
@bossylobster, print (repr (value)) возвращает: «час»; Не могли бы вы объяснить, что делает repr ()? Я новичок в Python. Aashiq Hussain
Пытатьсяprint repr(value) вместоprint value. bossylobster
& quot; Вернуть строку, содержащую печатаемое представление объекта. Для многих типов эта функция пытается вернуть строку, которая выдаст объект с тем же значением при передачеeval()... & Quot;docs.python.org/py3k/library/functions.html#repr bossylobster

Ваш Ответ

2   ответа
8

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

import re

def removechars(cellvalue):
    text = re.sub(r"[\r\n\t\x07\x0b]", "", cellvalue)
    return text

Тогда я использую:

value = table.Cell(Row = 1, Column = 1).Range.Text
value = removechars(value)
Это правильный ответ.
3

value.rstrip('\r\n') удалить возврат каретки (\r) или переводы строки (\n) в конце вашей строкиvalue.

Нет. Здесь и в будущем, когда вы программируете, важно понимать, почему они так выглядят. Почему вы не публикуете код, который используете для получения значения.
Есть ли способ убрать все эти специальные символы, такие как, \ t, \ a, \ n и другие? Я имею в виду, не используя их все в функции полосы? Aashiq Hussain
Он возвращает: «час» \ r \ x07 »; Aashiq Hussain
\x07 эквивалентно\a который является системным звуковым сигналом. Я не уверен, как это вошло в твою строку.

Похожие вопросы