如何使用xlsxwriter在Excel工作表中插入新行?例如,在Excel工作表的单元格区域A1:G10处有一个现有的数据表,我想插入一行(A:A),以便为报告的标题留出一些空间。
我浏览了http://xlsxwriter.readthedocs.io/worksheet.html的文档,但是找不到这样的方法。
import xlsxwriter
# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('Expenses01.xlsx')
worksheet = workbook.add_worksheet()
worksheet.insert_row(1) # This method doesn't exist发布于 2017-02-17 19:11:06
不幸的是,这不是xlsxwriter能做的事情。
openpyxl是xlsxwriter的一个很好的替代品,如果您正在开始一个新项目,请不要使用xlsxwriter。
目前openpyxl不能插入行,但是here是openpyxl的一个可以插入行的扩展类。
openpyxl还允许读取xlsxwriter所不支持的excel文档。
发布于 2018-10-12 17:04:21
通过使用openpyxl,可以插入新的行和列
import openpyxl
file = "xyz.xlsx"
#loading XL sheet bassed on file name provided by user
book = openpyxl.load_workbook(file)
#opening sheet whose index no is 0
sheet = book.worksheets[0]
#insert_rows(idx, amount=1) Insert row or rows before row==idx, amount will be no of
#rows you want to add and it's optional
sheet.insert_rows(13)希望这能有所帮助
发布于 2021-12-02 00:18:41
2021年12月,这仍然是不可能的。你可以通过做一些计划来解决这个问题,然后从不同的行开始写你的数据帧。以xlsxwriter documentation中的示例为基础
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
writer = pd.ExcelWriter('my_excel_spreadsheet.xlsx', engine='xlsxwriter')
with writer as writer:
df.to_excel(writer, sheet_name='Sheet1', startrow = 4) # <<< notice the startrow here然后,您可以像其他注释中提到的那样写入前面的行:
workbook = writer.book
worksheet = writer.sheets['Sheet1']
worksheet.write(row, 0, 'Some Text') # <<< Then you can write to a different row虽然不完全是我们想要的insert()方法,但总比什么都没有好。
我发现,即使我没有这个问题,这个过程中涉及的规划也不是我可以绕过的。当我达到将我的数据带到excel的阶段时,我必须做一些“手工”工作,以便使excel表足够漂亮,供人类使用,这就是将事物移动到excel的全部意义。因此,我不认为有必要预先计划我的开始行,因为这太离谱了。
https://stackoverflow.com/questions/36957035
复制相似问题