Tag: python 3.x

Python将csv文件转换为有序的Excel表单

我在我的文件夹13 csv文件被命名为1,2,3到13(1.csv,2.csv,3csv等),我想将它们转换为单张excel文件(xlsx)从1开始直到13,但是按照数字顺序! 为此,我使用了这个: import glob, csv, xlwt, os wb = xlwt.Workbook() for filename in glob.glob("data/*.csv"): (f_path, f_name) = os.path.split(filename) (f_short_name, f_extension) = os.path.splitext(f_name) ws = wb.add_sheet(f_short_name) spamReader = csv.reader(open(filename, 'r')) for rowx, row in enumerate(spamReader): for colx, value in enumerate(row): ws.write(rowx, colx, value) wb.save("compiled.xlsx") 我唯一的问题是,我的输出:compiled.xlsx将不会有我想要的顺序(从1,2,3,4,5 … 13开始),它将以4,13,11开始, 12,5,6,8等等。 我有我的文件夹中的文件以所需的顺序,我如何可以更改我的代码,以获得正确的表格顺序,我使用python 3,感谢您的时间!

我怎样才能从列表或数据框中input值到现有的Excel文件中的每个单元格?

所以基本上,我想用新数据更新工作表,覆盖Excel中现有的单元格。 这两个文件具有相同的列名称(我不想创build一个新的工作簿,也不添加一个新的列)。 在这里,我正在检索我想要的数据: import pandas as pd df1 = pd.read_csv print(df1) 输出(我只是复制和粘贴前5行,总共有约500行): Index Type Stage CDID Period Index Value 0 812008000 6 2 JTV9 201706 121.570 1 812008000 6 2 JTV9 201707 121.913 2 812008000 6 2 JTV9 201708 121.686 3 812008000 6 2 JTV9 201709 119.809 4 812008000 6 2 JTV9 201710 119.841 5 […]

Python 3 – 合并.xls /删除行/删除重复项

我试图结合3 .xls文件 – 并想在python3中做到这一点。 我需要删除一些行,然后将它们合并成一个.xls,然后删除重复项(我将稍后操纵数据的graphics) 我寻求指导,哪些模块在python3中使用,可以达到这个效果。 任何援助将不胜感激。

在Python 3.4中使用Excel表格

那么我完全卡在阅读Excel表(与Python的初学者)….我有一个Excel表中的3列( A , B和C ),在每个行中有n行…所以如何我可以创build一个循环遍历所有的行,直到到达结尾,并将内容写入文本文件(.txt)….所有3列的行数相同….请帮助 我用来打开Excel表格的代码是: import xlrd workbook = xlrd.open_workbook('Book1.xlsx') worksheet = workbook.sheet_by_name('Sheet1') 使用的代码: num_rows = worksheet.nrows – 1 num_cells = worksheet.ncols – 1 curr_row = -1 while curr_row < num_rows: curr_row += 1 row = worksheet.row(curr_row) curr_cell = -1 while curr_cell < num_cells: curr_cell += 1 cell_value = worksheet.cell_value(curr_row, curr_cell) print (cell_value)

做了一个recursion程序,将列的位置转换为Excel列(1 = A,27 = AA),在我的输出中获得@

我让这个程序熟悉了recursion以及它正在工作的所有意图和目的。 def alpha_covert(to_print): if to_print is 0: return 'Z' else: return chr(int(to_print) + 64) def order(to_print): if to_print <= 26: return alpha_covert(to_print) else: return (str(order(to_print % 26))) + (str(order(to_print / 26))) 一些示例输出: >>print(order(1)) >>print(order(100)) >>print(order(443)) >>print(order(9001)) >>print(order(9999999999999999)) A VC AQ EHM O@JIHYHMTURB 对于最后的输出为什么有一个@ ? 我认为没有问题,因为int没有被声明,直到我使用alpha_covert ,那么应该只是less than or equal to 26 。 这是一种浮动舍入错误? 一些额外的样本,而我试图自我解决这个问题。 我不知道这是什么意思: […]

csv.writer将所有内容写入一个单元格

编辑 :解决感谢@ayhan。 如果您来自波兰,请使用分号而不是逗号作为分隔符。 我有一个列表如下所示: list = [['edytor poranka PN', '1/04/2016', '15:00'], ['edytor PN 2', '2/04/2016', '08:30'], ['edytor PN noc', '3/04/2016', '22:00']] csv.writer将每个列表写入一个单元格而不是3个单独的单元格。 我的代码如下所示: with open('file.csv', 'w') as f: writer = csv.writer(f, delimiter=',', quoting=csv.QUOTE_MINIMAL) writer.writerows(list) 我也试过这个方法: for i in list: writer.writerow(i) 而且这也行不通。 我的另一个问题是,每行被一个额外的空行分隔,我不知道如何摆脱它。 我知道有类似的问题,但没有解决scheme为我工作。

使用openpyxl使用电子表格的行创build对象列表

我在Excel中有一个表格,如下所示: ID Address Type 1 2 John Avenue family 2 3 John Avenue single woman 3 4 John Avenue single man 4 5 John Avenue mixed couple 5 6 John Avenue youth 6 7 John Avenue family 7 8 John Avenue single woman 我想读取表中的每一行(不包括标题),并将每行转换为“Person”类的实例。 为了做到这一点,我试图把每一行读成一个字典,以“ID”作为关键。 我正在使用“openpyxl”从Excel文件中读取。 一旦我能够将Excel文件中的数据存储到字典中,我计划创build“Person”类的实例 – 尽pipe我不确定这是否是最好的方法。 这是我到目前为止的代码: from openpyxl import load_workbook class […]

openpyxl – 读取数据validation – 列表

我有一个Excel表,数据validation属性列表。 我需要创build一个column_name和关联的下拉列表值的字典。 例如:{A:[a1,a2,a3],B:[b1,b2],C:[c1,c2,c3,c4]}。 有多个如何在Excel中embedded数据validation列表的例子,但是我怎么读呢? 我试过简单的代码: from openpyxl import load_workbook excel = load_workbook('test.xlsx') sheet = excel.get_sheet_by_name('RequiredFormat') for row in sheet.iter_rows(): for cell in row: print(cell.value) input("Proceed ?") 我检查了可用的单元格的选项。 但没有什么说数据validation或列表。 有没有办法?

使用OpenPyXl检查空单元格

我倒了很多版本的这个相同的问题,但根本找不到一个工作的解决scheme循环通过一组单元格和检查空的。 这是我的代码: wb = openpyxl.Workbook(write_only=False) sheet = wb.get_sheet_by_name('Sheet') for i in range(1, 20): if sheet.cell(row=i, column=1).value == None or 'None': print('Space' + str(i)) sheet.cell(row=i, column=1) = i else: pass wb.save('filename.xlsx') 但由于某种原因,它写入空单元格并覆盖写入其中的值的单元格。 我注释掉循环,我发现如果我运行代码,它会将所有手动写入电子表格的内容都擦除。 也许这是问题的一部分? 另外我使用LibreOffice如果有所作为

xlrd不会打印任何python 3

我想用xlrd读取excel文件中的数据,但每当我尝试在def open_file块内打印任何东西时。 我没有得到任何错误(我尝试了除了但不打印任何东西)。 我testing打印该块以外的随机string,它工作正常。 import xlrd, xlwt path = r"C:\Users\…excelworksheet.xls" def open_file(path): book = xlrd.open_workbook(path) try: print(book.nsheets) except: print("error") print(book.sheet_names())