Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2010 12:31:47

Alexander
От:
Зарегистрирован: 2010-07-07
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Конвертация XLS в HTML

Всем привет!
Возникла такая задача конвертировать xls файл в html формат простой чистой таблицей.
Для этого установил pyexcelerator и использую xls2html.py.
Проблема в том, что таблица получается рваной из-за того что проходя по ряду, если после какой-то колонки другие пустые, то они не печатаются.



Как доработать код чтобы он добавлял td даже если они пустые?

#!/usr/bin/env python
# -*- coding: windows-1251 -*-
# Copyright (C) 2005 Kiseliov Roman

__rev_id__ = """$Id: xls2html.py,v 1.1 2005/05/19 09:27:42 rvk Exp $"""


from pyExcelerator import *
import sys

me, args = sys.argv[0], sys.argv[1:]

if args:
f = open('workfile.html', 'w')
for arg in args:
print >>sys.stderr, 'extracting data from', arg
print >>f, '<html>'
for sheet_name, values in parse_xls(arg, 'cp1251'): # parse_xls(arg) -- default encoding
matrix = [[]]
print >>f, 'Sheet = "%s"' % sheet_name.encode('cp1251', 'backslashreplace')
print >>f, '<table border="2" cellpadding="1" cellspacing="1" >'
for row_idx, col_idx in sorted(values.keys()):
v = values[(row_idx, col_idx)]
if isinstance(v, unicode):
v = v.encode('cp1251', 'backslashreplace')
else:
v = str(v)
last_row, last_col = len(matrix), len(matrix[-1])
while last_row < row_idx:
matrix.extend([[]])
last_row = len(matrix)

while last_col < col_idx:
matrix[-1].extend([''])
last_col = len(matrix[-1])

matrix[-1].extend([v])

for row in matrix:
print >>f, '<tr>'
for col in row:
print >>f, '<td> %s </td>' % col
print >>f, '</tr>'

print >>f, '</table>'
print >>f, '</html>'
f.close()
else:
print 'usage: %s (inputfile)+' % me



Офлайн

#2 Июль 8, 2010 05:22:22

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Конвертация XLS в HTML

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

Офлайн

#3 Июль 8, 2010 11:58:04

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Конвертация XLS в HTML

Какой-то мудрёный алгоритм, спросонья не могу врубиться, может в нём проблема?
Если всё же в pyExcelerator (не работал) попробуйте xlrd (работал).

> from pyExcelerator import *
Так делать не стоит.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version