Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python编写现有excel文件而不丢失以前的信息?_Python_Excel_Pandas_Append - Fatal编程技术网

如何使用python编写现有excel文件而不丢失以前的信息?

如何使用python编写现有excel文件而不丢失以前的信息?,python,excel,pandas,append,Python,Excel,Pandas,Append,我需要编写一个程序,从某个网页上删除每日报价,并将其收集到单个excel文件中。我写了一些东西,找到下一个空行并开始在其上写新引号,但也删除了以前的行: wb = openpyxl.load_workbook('gold_quote.xlsx') sheet = wb.get_sheet_by_name('Sheet1') . . . z = 1 x = sheet['A{}'.format(z)].value while x != None: x = sheet['A{}'.form

我需要编写一个程序,从某个网页上删除每日报价,并将其收集到单个excel文件中。我写了一些东西,找到下一个空行并开始在其上写新引号,但也删除了以前的行:

wb = openpyxl.load_workbook('gold_quote.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
.
.
.
z = 1
x = sheet['A{}'.format(z)].value

while x != None:
    x = sheet['A{}'.format(z)].value
    z += 1

writer = pd.ExcelWriter('quote.xlsx')
df.to_excel(writer, sheet_name='Sheet1',na_rep='', float_format=None,columns=['Date', 'Time', 'Price'], header=True,index=False, index_label=None, startrow=z-1, startcol=0, engine=None,merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)
writer.save()
问题:如何在现有excel文件上书写而不丢失以前的信息

openpyxl
使用
append
在上次使用的行之后写入:

wb = openpyxl.load_workbook('gold_quote.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')

rowData = ['2017-08-01', '16:31', 1.23]
sheet.append(rowData)

wb.save('gold_quote.xlsx')
问题:如何在现有excel文件上书写而不丢失以前的信息

openpyxl
使用
append
在上次使用的行之后写入:

wb = openpyxl.load_workbook('gold_quote.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')

rowData = ['2017-08-01', '16:31', 1.23]
sheet.append(rowData)

wb.save('gold_quote.xlsx')

我想,首先我们应该定义一个读卡器来读取excel文件的现有数据,然后将最近从web上提取的数据与一个定义的写卡器连接起来,我们应该删除重复的数据,否则任何时候执行程序都会有许多重复的数据。然后我们可以将以前的数据和新数据一起写入:

excel_reader = pd.ExcelFile('gold_quote.xlsx')
to_update = {"Sheet1": df}

excel_writer = pd.ExcelWriter('gold_quote.xlsx')

for sheet in excel_reader.sheet_names:
    sheet_df = excel_reader.parse(sheet)
    append_df = to_update.get(sheet)

    if append_df is not None:
        sheet_df = pd.concat([sheet_df, df]).drop_duplicates()

    sheet_df.to_excel(excel_writer, sheet, index=False)

excel_writer.save()

我想,首先我们应该定义一个读卡器来读取excel文件的现有数据,然后将最近从web上提取的数据与一个定义的写卡器连接起来,我们应该删除重复的数据,否则任何时候执行程序都会有许多重复的数据。然后我们可以将以前的数据和新数据一起写入:

excel_reader = pd.ExcelFile('gold_quote.xlsx')
to_update = {"Sheet1": df}

excel_writer = pd.ExcelWriter('gold_quote.xlsx')

for sheet in excel_reader.sheet_names:
    sheet_df = excel_reader.parse(sheet)
    append_df = to_update.get(sheet)

    if append_df is not None:
        sheet_df = pd.concat([sheet_df, df]).drop_duplicates()

    sheet_df.to_excel(excel_writer, sheet, index=False)

excel_writer.save()


听起来像是在编译字符串列表。为什么不改为以行分隔的txt文件呢?每行可以是自己的条目。我需要excel文件进行进一步处理。我可以使用此代码在excel文件上写入,但在每天更新时,前面的行将被删除。听起来类似于以“写入”与“附加”状态打开文件。听起来像是在编译字符串列表。为什么不改为以行分隔的txt文件呢?每行可以是自己的条目。我需要excel文件进行进一步处理。我可以使用此代码在excel文件中写入,但在每天更新时,前几行将被删除。听起来与打开状态为“写入”与“附加”的文件时类似。在结尾部分添加此代码的操作完全相同,我是否应该删除代码中的任何内容,以便在每次执行时保留以前的行?请将其添加到此行:writer=pd.ExcelWriter('quote.xlsx'),执行时出现此错误:xl_format=self.book.Add_format()AttributeError:'Workbook'对象没有属性'add_format'在结尾部分添加此代码的作用完全相同,我是否应该从代码中删除任何内容以在每次执行时保留以前的行?将其添加到此行:writer=pd.ExcelWriter('quote.xlsx'))执行时出现以下错误:xl_format=self.book.add_format()AttributeError:“工作簿”对象没有属性“add_format”,除非无法附加padnas数据帧格式,否则一切看起来都很好。它表示无法转换为Excel。应该附加的最终数据类型是:@Farhad:您必须将
pandas.DataFrame
转换为
list
append
从列表中逐行或
迭代pandas.DataFrame
。除非无法附加padnas数据帧格式,否则一切看起来都很好。它表示无法转换为Excel。应附加的最终数据类型为:@Farhad:您必须将
pandas.DataFrame
转换为
list
append
从列表中逐行或
迭代pandas.DataFrame