简体   繁体   English

xlsxwriter- 将列表写入列

[英]xlsxwriter- Writing a list to a column

Anyone have an idea how to write to a column.任何人都知道如何写入列。 I am parsing data from one excel sheet based on what is in a specific column and turning it to a list to easily skip the first two columns.我正在根据特定列中的内容解析一张 Excel 表中的数据,并将其转换为列表以轻松跳过前两列。

After I'm trying to insert that list into a new sheet and have each element in the list be inserted in a new column within the same row.在我尝试将该列表插入到新工作表中并将列表中的每个元素插入到同一行的新列中之后。

My code only adds one element ("RDU1-RX04") from parsed into A1.我的代码仅从解析为 A1 中添加一个元素(“RDU1-RX04”)。

Can anyone help in determining what I am doing wrong?谁能帮助确定我做错了什么? I couldn't find enough information to try to piece this together.我找不到足够的信息来尝试将其拼凑在一起。 Am I taking an approach that even makes sense?我是否采取了一种甚至有意义的方法?

parsed = ['RDU1-TX01', 'RDU1-TX01', 'RDU1-TX01', 'RDU1-RX01', 'RDU1-RX01', 'RDU1-RX01', 'RDU1-RX02', 'RDU1-RX02', 'RDU1-RX02', 'RDU1-RX03', 'RDU1-RX03', 'RDU1-RX03', 'RDU1-RX04', 'RDU1-RX04', 'RDU1-RX04']解析 = ['RDU1-TX01'、'RDU1-TX01'、'RDU1-TX01'、'RDU1-RX01'、'RDU1-RX01'、'RDU1-RX01'、'RDU1-RX02'、'RDU1-RX02' , 'RDU1-RX02', 'RDU1-RX03', 'RDU1-RX03', 'RDU1-RX03', 'RDU1-RX04', 'RDU1-RX04', 'RDU1-RX04']

import xlrd
import xlsxwriter

PRWB = xlrd.open_workbook('prsheet.xlsx')
PRSHEET= PRWB.sheet_by_index(0)
PRSHEET.cell_value(0, 0)
X = []

for i in range(PRSHEET.nrows):
    a = PRSHEET.cell_value(i, 2)
    X.append(a)
    parsed= map(str, X)[2:]

print (parsed)

IPAMWB = xlsxwriter.Workbook('pripam.xlsx')
IPAMSHEET= IPAMWB.add_worksheet('Sheet 1')

for t in parsed:
    IPAMSHEET.write(0, 0, t)

IPAMWB.close()

The output file I get The output desired我得到的输出文件所需的输出

In case anyone is wondering the solution was actually to create a counter.如果有人想知道解决方案实际上是创建一个计数器。 What was happening was it was replacing my elements over and over until it reached the last one in that same column.发生的事情是它一遍又一遍地替换我的元素,直到它到达同一列中的最后一个。 I created a count starting from the 6th column and increased after every element iteration.我从第 6 列开始创建了一个计数,并在每次元素迭代后增加。

import xlrd
import xlsxwriter

PRWB = xlrd.open_workbook('prsheet.xlsx')
PRSHEET= PRWB.sheet_by_index(0)
PRSHEET.cell_value(0, 0)
X = []

for i in range(PRSHEET.nrows):
    a = PRSHEET.cell_value(i, 2)
    X.append(a)
    parsed= map(str, X)[2:]

print (parsed)

IPAMWB = xlsxwriter.Workbook('pripam.xlsx')
IPAMSHEET= IPAMWB.add_worksheet('Sheet 1')

count=5

for t in parsed:
    IPAMSHEET.write(count, 3, t)
    count+=1

IPAMWB.close()

Query - I had to import employees names from an outside Excel sheet and write those in a column in my current sheet.查询 - 我必须从外部 Excel 工作表中导入员工姓名,并将这些姓名写在当前工作表的一列中。 Working code is below.工作代码如下。

# Importing packages
import xlsxwriter
import pandas as pd

#Creating workbook and worksheet
workbook = xlsxwriter.Workbook("newsheet.xlsx")
worksheet = workbook.add_worksheet("namesheet")

# importing names from outside sheet and writing those in a column (Column 0) in current sheet

df = pd.read_excel('mysheet.xlsx',sheet_name='sheet1')
emp_list = df['Name'].to_list()  #Fetching names and stored in a list

for row_count in range (0,len(emp_list)):
    worksheet.write(row_count,0,emp_list[row_count])

workbook.close()

I believe you can use pandas :我相信你可以使用pandas

df1 = pd.DataFrame(parsed)

writer = pd.ExcelWriter('output.xlsx')
df1.to_excel(writer,'Sheet1',header=False)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM