Skip to content

Commit 221dc37

Browse files
authored
Merge pull request #170 from Datenschule/switch-to-openpyxl
Switch to openpyxl
2 parents ea4777b + 12db4b1 commit 221dc37

File tree

3 files changed

+36
-19
lines changed

3 files changed

+36
-19
lines changed

jedeschule/spiders/mecklenburg_vorpommern.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from scrapy import Item
2-
import xlrd
2+
from openpyxl import load_workbook
3+
from io import BytesIO
4+
35

46
from jedeschule.items import School
57
from jedeschule.spiders.school_spider import SchoolSpider
@@ -25,13 +27,16 @@ class MecklenburgVorpommernSpider(SchoolSpider):
2527
start_urls = [base_url]
2628

2729
def parse(self, response):
28-
workbook = xlrd.open_workbook(file_contents=response.body)
29-
data_sheet = workbook.sheet_by_name("Verzeichnis allg bild Schulen")
30-
headers = [data_sheet.cell(0, c).value for c in range(data_sheet.ncols)]
31-
for row_number in range(1, data_sheet.nrows):
30+
workbook = load_workbook(filename=BytesIO(response.body), data_only=True)
31+
data_sheet = workbook["Verzeichnis allg bild Schulen"]
32+
33+
rows = list(data_sheet.iter_rows(values_only=True))
34+
headers = rows[0]
35+
36+
for row in rows[1:]:
3237
yield {
33-
headers[c]: data_sheet.cell(row_number, c).value
34-
for c in range(data_sheet.ncols)
38+
headers[i]: row[i]
39+
for i in range(len(headers))
3540
}
3641

3742
@staticmethod

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ requires-python = ">=3.12"
77
dependencies = [
88
"alembic==1.3.3",
99
"geoalchemy2==0.8.4",
10+
"openpyxl>=3.1.5",
1011
"psycopg2==2.9.10",
1112
"pyproj==3.6.1",
1213
"requests==2.32.0",
1314
"scrapy==2.13.1",
1415
"sqlalchemy==1.3.10",
15-
"xlrd==1.1.0",
1616
]

uv.lock

Lines changed: 23 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)