2013-01-07 18:44:11 +0000 2013-01-07 18:44:11 +0000
12
12
Advertisement

Jak wyświetlić lub wyświetlić znaki niedrukowane w programie Excel?

Advertisement

Czy w MS Excel 2010 istnieje opcja, która pozwoli na wyświetlenie w komórce znaków niedrukowalnych (np. spacji lub znaku łamania linii wprowadzanego po naciśnięciu Alt-Enter)?

Advertisement
Advertisement

Odpowiedzi (7)

10
10
10
2013-05-17 13:12:55 +0000

Najprostszym sposobem jest po prostu zmiana czcionki na taką, która ma wbudowany widoczny glif dla spacji (lub innego znaku, który może być potrzebny do identyfikacji)

Niestety, nie mam żadnego dobrego przykładu takiej czcionki, ale bardzo łatwo jest dodać małą kropkę do istniejącej czcionki, używając dowolnego programu do edycji czcionek. Tylko nie zapomnij zmienić nazwy czcionki (nie pliku czcionki, ale NAZWY czcionki w pliku czcionki), tak aby łatwo było odróżnić tę własną czcionkę od oryginalnej, jeśli masz zainstalowane obie.

EDIT W końcu znalazłem czas na zrobienie takiej czcionki! Oto nadchodzi DottedSpace Mono, oparta na Bitstream Very Sans Mono, ale z wbudowanymi kropkowanymi spacjami: http://github.com/tanusoft/DottedSpaceMono

4
4
4
2016-01-21 02:01:28 +0000

CTRL+H zastąp wszystkie spacje znakiem ~ To pomoże szybko znaleźć spacje bez programowania, a żeby odwrócić wystarczy zastąpić ~ znakiem “ ”.

Najlepszy program jaki znalazłem do porównywania tego typu plików, gdzie tekst nie jest wyświetlany to Ultra Edit. Musiałem go używać do porównywania plików EDI, plików interfejsów, przesyłek technicznych itp. MS Office po prostu nie jest dobrze wyposażony do tego zadania.

3
Advertisement
3
3
2013-01-08 19:18:04 +0000
Advertisement

Chociaż nie można wyświetlać znaków specjalnych bezpośrednio w komórce, można użyć formuły w sąsiedniej (wstawionej) kolumnie, aby zastąpić znaki Enter i Spacja wybranymi przez siebie znakami!

Np.

=SUBSTITUTE(A1;" ";" ¶ ")

zastąpiłoby każdy linebreak symbolem słowa oznaczającego przerwę w linii. A zagnieżdżona formuła =SUBSTITUTE(SUBSTITUTE(A1;" ";" ¶ ");" ";"\_") zastąpi zarówno spację, jak i enter. (Uwaga: aby wprowadzić “Enter” do formuły, musisz nacisnąć Alt+Enter podczas edycji formuły.

1
1
1
2016-03-08 14:55:45 +0000

Zmiana czcionki na typ “Terminal” pomogłaby Ci je zobaczyć i zmienić.

0
Advertisement
0
0
2018-04-07 01:38:46 +0000
Advertisement

1 Użyj find i wpisz spację

2 Zrób Replace All i wpisz “[s-p-a-c-e]”

3 Opcjonalnie: Jeśli chcesz również zaznaczyć całą komórkę na czerwono, po prostu użyj selektora formatu obok tego

Wynik: Te pesky spacje ujawnią się super wyraźnie

Dlaczego musiałem to zrobić: Używałem funkcji COUNTA do znalezienia niepustych komórek w kolumnie. Jednak zwracała ona liczbę większą niż się spodziewałem. Debugowałem każdą komórkę po kolei i ku mojemu zdumieniu, niektóre pozornie puste komórki pokazywały COUNTA=0, a inne COUNTA=1, co nie ma sensu. Nie widziałem różnicy pomiędzy tymi dwoma. Okazuje się, że w tej funkcji liczy się pojedyncza resztka pusta, ale nie jest ona widoczna GDZIEKOLWIEK w komórce lub polu wprowadzania na górze.

Wniosek: Jeśli polegasz na COUNTA w ważnych zadaniach, lepiej upewnij się, że nie liczy ona tych kłopotliwych spacji, o których możesz nie wiedzieć, że tam są.

0
0
0
2019-12-06 06:55:35 +0000

Zazwyczaj nie potrzebuję VBA, więc wolę robić rzeczy związane z Excelem w pythonie + openpyxl

from docx import Document #word docx py library
import openpyxl #excel py library
from openpyxl.styles import Color, PatternFill, Font, Border
from openpyxl.styles import colors
from openpyxl.cell import Cell
import re #regular expressions
import os #work with system

wb = openpyxl.load_workbook('test.xlsx') #open needed document

redFill = PatternFill(start_color='FFFF0000',
                   end_color='FFFF0000',
                   fill_type='solid') #function to fill bad cells red

n = 0
print (wb.sheetnames) #print all sheetnames to ensure theres no hidden

for sheet in wb.worksheets: #cycle through sheets in excel file
    # get max row count
    max_row=sheet.max_row
    # get max column count
    max_column=sheet.max_column
    for i in range(1,max_row+1):
     # iterate over all columns
        for j in range(1,max_column+1): #cycle through all rows and columns
            # get particular cell value    
            cell_obj=sheet.cell(row=i,column=j)
            s = re.search('[^-*+()!№;%:?@#$%^&;:_=/\a-zA-Z0-9\ а-яА-Я°\".,,.«»<>ёЁ]', str(cell_obj.value)) #find bad symbols with regular expression
            #^ find not normal characters 
            #s = re.search('[\n]', str(cell_obj.value)) find line end
            if s:   
                print(n, " ", i, " ", j) #sheet, row, col
                #print("^", s, "^") print bad symbol
                #sheet.cell(row=i,column=j).fill = redFill
                #color current cell wth spec chars red

    print(n)
    n+=1

wb.save("test.xlsx") #save redacted book
0
Advertisement
0
0
2017-01-24 19:38:05 +0000
Advertisement

Nie odpowiada to dokładnie na twoje pytanie, ale ustawiam format liczb na taki:

;;;'@'

dla pojedynczych cudzysłowów, lub ten

;;;\"@\"

dla podwójnych cudzysłowów. To zawija cudzysłowy wokół każdego wprowadzonego tekstu. Ustawiłem również czcionkę na Courier New (lub inną o stałej szerokości).

Advertisement

Questões relacionadas

6
13
9
10
10
Advertisement