import base64, html as H, io, os

DOM = r"D:\workbbbbbb\build\_x_dom.html"
OUTX = r"D:\workbbbbbb\build\_out.xlsx"
TXT = r"D:\workbbbbbb\build\_x_out.txt"

s = io.open(DOM, encoding='utf-8', errors='replace').read()
i = s.find('id="E2E"')
if i < 0:
    io.open(TXT, 'w', encoding='utf-8').write('NO_E2E')
    raise SystemExit(0)
j = s.find('>', i) + 1
k = s.find('</div>', j)
raw = H.unescape(s[j:k]).replace('\n', ' ')
lines = [x.strip() for x in raw.split(' || ')]
b64 = ''
head = []
for x in lines:
    if x.startswith('BASE64:'):
        b64 = x[7:]
    else:
        head.append(x)
rep = []
if b64:
    try:
        data = base64.b64decode(b64)
        io.open(OUTX, 'wb').write(data)
        rep.append('decodedBytes=' + str(len(data)))
        import openpyxl
        wb = openpyxl.load_workbook(OUTX)
        ws = wb.active
        rep.append('sheet=' + ws.title)
        rep.append('dims=' + str(ws.max_row) + 'x' + str(ws.max_column))
        hdr = [ws.cell(1, c).value for c in range(1, ws.max_column + 1)]
        rep.append('hdr=' + '|'.join([str(v or '') for v in hdr]))
        r2 = [ws.cell(2, c).value for c in range(1, ws.max_column + 1)]
        rep.append('row2=' + '|'.join([str(v or '') for v in r2]))
        names = [str(ws.cell(r, 1).value or '') for r in range(2, ws.max_row + 1)]
        rep.append('names=' + ','.join(names))
        areas8 = [str(ws.cell(r, 9).value or '') for r in range(2, ws.max_row + 1)]
        rep.append('colI=' + ','.join(areas8))
    except Exception as e:
        rep.append('DECODE_ERR ' + repr(e)[:300])
else:
    rep.append('NO_B64')
io.open(TXT, 'w', encoding='utf-8').write('\n'.join(head) + '\n' + '\n'.join(rep) + '\n')
print('written')
