汕头市营商环境建设监督局网站,四川手机网,网站开发core文件作用,天津手机网站制作有很多不同的东西你可以写到电子表格#xff0c;从简单的文本或数字值到复杂的公式#xff0c;图表#xff0c;甚至图像。创建一个简单的电子表格之前#xff0c;大家看到了一个非常快速的例子#xff0c;就是如何将 Hello world!写进电子表格中#xff0c;所… 有很多不同的东西你可以写到电子表格从简单的文本或数字值到复杂的公式图表甚至图像。创建一个简单的电子表格之前大家看到了一个非常快速的例子就是如何将 Hello world!写进电子表格中所以大家可以从这个开始。上面代码中高亮的几行是最重要的写法第5行告诉你如何创建一个新的空工作簿。第8行和第9行显示了如何向特定单元格添加数据。第11行告诉你如何在完成后保存电子表格。尽管上面这些代码表达非常简洁但遇到更复杂情况的时候熟知它们还是非常必要的。你可以做的一件事是在你的Python文件或控制台中添加下面的方法来帮助即将到来的代码示例 def print_rows():... for row in sheet.iter_rows(values_onlyTrue):... print(row)只需调用print_rows()就能轻松打印出所有的电子表格值。电子表格的基本操作在进入更高级的主题之前最好先了解如何管理电子表格中最简单的元素。添加和更新单元格值你已经学会了如何像这样的电子表格添加值sheet[A1] value其实还有一种方法可以做到这一点先选择一个单元格然后改变其值。 cell sheet[A1] cellSheet.A1 cell.valuehello cell.value hey cell.valuehey只有在调用workbook.save()后新的值才会存储到电子表格中。openpyxl会在添加值时创建一个单元格前提是如果该单元格之前不存在。 # Before, our spreadsheet has only 1 row print_rows()(hello, world!) # Try adding a value to row 10 sheet[B10] test print_rows()(hello, world!)(None, None)(None, None)(None, None)(None, None)(None, None)(None, None)(None, None)(None, None)(None, test)当你试图向单元格B10中添加一个值时你最终会得到一个有10行的元组只是为了让你能得到那个测试值。管理行和列在操作电子表格时最常见的事情之一就是添加或删除行和列。openpyxl软件包允许你通过使用以下方法以一种非常直接的方式来完成这些操作.insert_rows().delete_rows().insert_cols().delete_cols()以下这些方法中的每一个都可以接收两个参数:idx数量再用我们基本的hello_world.xlsx例子让我们看看这些方法是如何工作的。 print_rows()(hello, world!) # Insert a column before the existing column 1 (A) sheet.insert_cols(idx1) print_rows()(None, hello, world!) # Insert 5 columns between column 2 (B) and 3 (C) sheet.insert_cols(idx3, amount5) print_rows()(None, hello, None, None, None, None, None, world!) # Delete the created columns sheet.delete_cols(idx3, amount5) sheet.delete_cols(idx1) print_rows()(hello, world!) # Insert a new row in the beginning sheet.insert_rows(idx1) print_rows()(None, None)(hello, world!) # Insert 3 new rows in the beginning sheet.insert_rows(idx1, amount3) print_rows()(None, None)(None, None)(None, None)(None, None)(hello, world!) # Delete the first 4 rows sheet.delete_rows(idx1, amount4) print_rows()(hello, world!)你需要唯一需要记住的是当插入新数据(行或列)时插入发生在idx参数之前。如果你执行insert_rows(1)它会在现有的第一行之前插入一条新行。对于列来说也是一样当你调用insert_cols(2)时它会在已经存在的第二列(B)之前插入一个新的列。但是当删除行或列时.delete_...会从作为参数传递的索引开始删除数据。例如当执行delete_rows(2)时它删除第2行而当执行delete_cols(3)时它删除第三列(C)。管理工作表格工作表管理也是你需要了解的东西之一尽管它可能是你不经常使用的东西。如果你回顾一下本教程中的代码示例你会注意到下面这段反复出现的代码。sheet workbook.active这是选择电子表格中默认工作表的方法。不过如果你打开的电子表格有多张表那么你总是可以像这样选择一个特定的表。 # Lets say you have two sheets: Products and Company Sales workbook.sheetnames[Products, Company Sales] # You can select a sheet using its title products_sheet workbook[Products] sales_sheet workbook[Company Sales]你也可以很容易地改变一个表的标题 workbook.sheetnames[Products, Company Sales] products_sheet workbook[Products] products_sheet.title New Products workbook.sheetnames[New Products, Company Sales]如果你想创建或删除工作表那么你也可以通过.create_sheet()和.remove()来实现 workbook.sheetnames[Products, Company Sales] operations_sheet workbook.create_sheet(Operations) workbook.sheetnames[Products, Company Sales, Operations] # You can also define the position to create the sheet at hr_sheet workbook.create_sheet(HR, 0) workbook.sheetnames[HR, Products, Company Sales, Operations] # To remove them, just pass the sheet as an argument to the .remove() workbook.remove(operations_sheet) workbook.sheetnames[HR, Products, Company Sales] workbook.remove(hr_sheet) workbook.sheetnames[Products, Company Sales]你还可以用copy_worksheet()来复制一个工作表 workbook.sheetnames[Products, Company Sales] products_sheet workbook[Products] workbook.copy_worksheet(products_sheet)Products Copy workbook.sheetnames[Products, Company Sales, Products Copy]如果保存上述代码后打开电子表格你会发现工作表Products Copy与工作表Products其实是重复的。冻结行和列在处理大型电子表格时你可能想做的事情是冻结一些行或列这样当你向右或向下滚动时它们仍然可见。冻结数据可以让你关注重要的行或列无论你在电子表格中滚动到哪里。同样openpyxl 也有办法通过使用工作表 freeze_panes 属性来实现这一目的。对于这个例子回到我们的sample.xlsx电子表格并尝试做以下操作 workbook load_workbook(filenamesample.xlsx) sheet workbook.active sheet.freeze_panes C2 workbook.save(sample_frozen.xlsx)如果你在你最喜欢的电子表格编辑器中打开sample_frozen.xlsx电子表格你会注意到第1行以及A和B列都被冻结了无论你在电子表格中的哪个位置导航这部分都是可见的。这个功能很方便可以将标题保持在视线范围内这样你就可以随时知道每列代表什么。下面在是编辑器中的样子请注意你已经到了电子表格的最后然而你既能看到第1行又能看到A和B列。添加过滤器你可以使用 openpyxl 为你的电子表格添加过滤器和分类。然而当你打开电子表格时数据不会根据这些分类和过滤器重新排列。这似乎是一个很无用的功能但当你以编程方式创建一个电子表格并将被别人发送和使用时至少创建过滤器并允许人们在之后使用它还是不错的。下面的代码是一个例子说明如何在我们现有的sample.xlsx电子表格中添加一些过滤器。 # Check the used spreadsheet space using the attribute dimensions sheet.dimensionsA1:O100 sheet.auto_filter.ref A1:O100 workbook.save(filenamesample_with_filters.xlsx)现在当您在编辑器中打开电子表格时您应该可以看到创建的过滤器。如果你知道你要应用过滤器的电子表格的哪个部分你就不必使用 sheet.dimensions今天介绍了以下创建电子表格的基本操作下一篇我们会继续深入了解如何添加公式添加样式进行条件格式化添加图片添加漂亮的图表以及如何转换Python类到Excel电子表格。