![](/img/trans.png)
[英]using xlwt writing data into the excel but in this code not properly inserting into the column
[英]Exception is inserting a list into a column using xlwt and python
我是python的新手,我正在使用xlwt创建列表和excel表单。我使用st.write(ID,name)
创建了6个st.write(ID,name)
。 我首先怀疑写入中的ID是rowID还是columnID(意味着write(1,'abc')将写入第一行或第一列)?
现在我有6个列表,我想将每个列表写入工作表中的一列。如何编写? st.write(colIDX,0,list1)
是一个有效的写语句(它会将list1写入第0列)吗? 如果没有那么我该怎么办?
更新:这是我目前正在使用的代码,但它将异常抛出为Exception: invalid worksheet name u'test'
import xlwt
import os
from merge import *
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('test')
sheet.write(0,0,'Column1')
sheet.write(0,1,'Column2')
sheet.write(0,2,'Column3')
sheet.write(0,3,'Column4')
lst1 = list()
lst2 = list()
lst3 = lt3 + lt4 #lt1 lt2 lt3 lt4 are lists are from merge file
lst4 = lt1 + lt2
pt = 'C:/Users/Desktop/tmp'
for filename in os.listdir(pt):
lst1.append(filename)
lst2.append('PST')
ng = 'C:/Users/Desktop/tmp2'
for filename in os.listdir(ng):
lst1.append(filename)
lst2.append('NG')
column_number = 0
for row_number, item in enumerate(lst1):
sheet.write(row_number, column_number, item)
column_number = 1
for row_number, item in enumerate(lst2):
sheet.write(row_number, column_number, item)
column_number = 2
for row_number, item in enumerate(lst3):
sheet.write(row_number, column_number, item)
column_number = 3
for row_number, item in enumerate(lst4):
sheet.write(row_number, column_number, item)
workbook.save('test.xls')
在我的情况下,只是超出了工作表名称中字符允许的限制
所以,剪下你的name_string,再试一次可以帮到你。
ws = wb.add_sheet(_small_course_name)
Excel对31个字符的工作表名称有硬性限制。 你的名字是34个字符。 这不是xlwt限制。 在Excel中手动尝试。
更多信息: https : //groups.google.com/forum/#!msg / python-excel / QK4iJrPDSB8 / D4LmyJJ7tXkJ
首先,这是一个Worksheet.write()
实现( 源代码 ):
def write(self, r, c, label="", style=Style.default_style):
self.row(r).write(c, label, style)
第一个参数是行号,第二个参数是列号。
此外,这是一个如何将列表写入第一列的示例:
import xlwt
data = ['Hello', 'World']
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('test')
column_number = 0
for row_number, item in enumerate(data):
worksheet.write(row_number, column_number, item)
workbook.save('test.xls')
这将生成一个test.xls
文件, A1
单元格中为“Hello”, A2
单元格中为“World”。
另见相关主题:
希望有所帮助。
还有一种方法可以做到这一点(看它是否有帮助) - 以pythonic方式进行
如下所示转置您的列表,然后将其粘贴到excel上。
>>> a = [['a', 'b', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c']]
>>> list(zip(*a))
[('a', 'aaaaaaaaaa', 'a'), ('b', 'b', 'bbbbbbbbbb'), ('c', 'c', 'c')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.