Piszę skrypt Pythona do odczytu danych z arkusza Excela za pomocą xlrd. Kilka komórek arkusza roboczego jest podświetlonych innym kolorem i chcę zidentyfikować kod koloru komórki. Czy istnieje jakiś sposób, aby to zrobić ? Przykład byłby naprawdę doceniony.Identyfikacja kodu kolorów arkusza Excel za pomocą pakietu XLRD
26
A
Odpowiedz
32
Oto jeden sposób, aby sobie z tym poradzić:
import xlrd
book = xlrd.open_workbook("sample.xls", formatting_info=True)
sheets = book.sheet_names()
print "sheets are:", sheets
for index, sh in enumerate(sheets):
sheet = book.sheet_by_index(index)
print "Sheet:", sheet.name
rows, cols = sheet.nrows, sheet.ncols
print "Number of rows: %s Number of cols: %s" % (rows, cols)
for row in range(rows):
for col in range(cols):
print "row, col is:", row+1, col+1,
thecell = sheet.cell(row, col)
# could get 'dump', 'value', 'xf_index'
print thecell.value,
xfx = sheet.cell_xf_index(row, col)
xf = book.xf_list[xfx]
bgx = xf.background.pattern_colour_index
print bgx
Więcej informacji na Python-Excel Google Group.
1
Ta funkcja zwraca wartość rgb tła komórki w krotce.
def getBGColor(book, sheet, row, col):
xfx = sheet.cell_xf_index(row, col)
xf = book.xf_list[xfx]
bgx = xf.background.pattern_colour_index
pattern_colour = book.colour_map[bgx]
#Actually, despite the name, the background colour is not the background colour.
#background_colour_index = xf.background.background_colour_index
#background_colour = book.colour_map[background_colour_index]
return pattern_colour
Powiązane problemy
- 1. Dodawanie logo do arkusza Excel za pomocą php excel
- 2. Excel VBA ComboBox Identyfikacja
- 3. Zapisywanie arkusza kalkulacyjnego programu Excel za pomocą Interop C#
- 4. Kopiowanie arkusza kalkulacyjnego za pomocą Apache POI
- 5. Usuwanie arkusza Excela za pomocą Apache POI
- 6. Ustaw niestandardowy kolor tła komórki arkusza Excel za pomocą epplus C#
- 7. Usuwanie zdjęć za pomocą programu Excel VBA
- 8. Uzyskiwanie pierwszego arkusza z dokumentu programu Excel bez względu na nazwę arkusza za pomocą OleDb
- 9. Importowanie danych arkusza kalkulacyjnego Excel do innego arkusza kalkulacyjnego Excel zawierającego VBA
- 10. Edytowanie arkuszy programu Excel za pomocą Pythona
- 11. Zmiana koloru komórki arkusza programu Excel za pośrednictwem VB.NET
- 12. C# przeczytaj excel arkusza roboczego
- 13. Excel VBA Użyj zaznaczonego arkusza
- 14. Identyfikacja profilu-icc za pomocą Image Magick
- 15. Wykrywanie kolorów za pomocą C#
- 16. Błąd podczas otwierania skoroszytu programu Excel za pomocą kodu C#
- 17. Dodaj zestaw reguł analizy kodu za pomocą pakietu nuget
- 18. Jak ustawić selektor kolorów otwarty za pomocą wprowadzania kolorów HTML5?
- 19. Zmień nazwę zdarzenia arkusza w programie Excel
- 20. Otwieranie dokumentu Excel za pomocą programu EPPlus
- 21. Jak odczytać dane z programu Excel za pomocą z PHPExcel
- 22. Wyjątek NullReferenceException w tworzeniu arkusza programu Excel
- 23. Jak skopiować linię w programie Excel za pomocą określonego słowa i wkleić do innego arkusza programu Excel?
- 24. Jak pobrać dane z pliku XML do arkusza Excel za pomocą VBA
- 25. Formatowanie warunkowe pliku Excel za pomocą ColdFusion
- 26. Czytanie arkusza XLSX do paszy tabeli MySQL za pomocą PHPExcel
- 27. Python xlrd parsować Excel xlsx do csv z konwersją daty
- 28. Reprezentowanie hierarchii drzewa za pomocą arkusza kalkulacyjnego Excel, aby można go było łatwo przetworzyć za pomocą czytnika Python CSV?
- 29. Nagłówki dla arkusza programu Excel przy użyciu EPPlus
- 30. Jak zmienić kolor tekstu w tej samej komórce arkusza programu Excel za pomocą apache poi?
Skrypt jest w stanie zidentyfikować kod koloru. Ale teraz mam inny problem. Arkusz programu Excel, który parsuję, ma dwie puste komórki bez żadnego dodatkowego formatowania lub koloru, czyli obie komórki mają białe tło i brak tekstu w środku, w pozycji - (52,4) i (9,4). W pierwszym przypadku kolor ma wartość 64, a dla drugiego 9. Jest jak inny kod koloru dla dwóch podobnych typów komórek? – Kinjal
Czy jesteś pewien, że nie masz jednego "pustego" i innego "bez wypełnienia"? – JMax
Wskaźnik koloru 9 oznacza kolor biały, chyba że paleta została zmieniona. 61 to "systemowy" indeks kolorów; przeczytaj rozdział o indeksach kolorów w pobliżu początku dokumentów xlrd. "puste", "biały" i "brak tekstu w środku" są niejasne. Powiedz nam komórkę ** typ **, wartość i xf_index. Użyj 'repr (value)'. Możesz mieć domyślne formatowanie zastosowane do kolumny 4; co daje "sheet.colinfo_map [4] .xf_index"? –