python - 如何使用 Python 写入 Excel 电子表格?

标签 python excel csv

我需要将程序中的一些数据写入 Excel 电子表格。我在网上搜索过,似乎有很多可用的软件包(xlwt、XlsXcessive、openpyxl)。其他人建议写入 .csv 文件(从未使用过 CSV,也不太明白它是什么)。

程序非常简单。我有两个列表(浮点)和三个变量(字符串)。我不知道两个列表的长度,它们的长度可能不会相同。

我希望布局如下图所示:

Layout sample

粉色列将包含第一个列表的值,绿色列将包含第二个列表的值。

那么最好的方法是什么?

我运行的是 Windows 7,但运行此程序的计算机上不一定安装 Office。

import xlwt

x=1
y=2
z=3

list1=[2.34,4.346,4.234]

book = xlwt.Workbook(encoding="utf-8")

sheet1 = book.add_sheet("Sheet 1")

sheet1.write(0, 0, "Display")
sheet1.write(1, 0, "Dominance")
sheet1.write(2, 0, "Test")

sheet1.write(0, 1, x)
sheet1.write(1, 1, y)
sheet1.write(2, 1, z)

sheet1.write(4, 0, "Stimulus Time")
sheet1.write(4, 1, "Reaction Time")

i=4

for n in list1:
    i = i+1
    sheet1.write(i, 0, n)

book.save("trial.xls")

我根据你的所有建议写了这篇文章。它完成了工作,但还可以稍微改进。

如何将 for 循环中创建的单元格(list1 值)设置为科学或数字格式?

我不想截断这些值。程序中使用的实际值小数点后大约有 10 位数字。

最佳答案

使用DataFrame.to_excel来自pandas 。 Pandas 允许您以功能丰富的数据结构表示您的数据,并让您read in excel 文件也是如此。

您首先必须将数据转换为 DataFrame,然后将其保存到 Excel 文件中,如下所示:

In [1]: from pandas import DataFrame
In [2]: l1 = [1,2,3,4]
In [3]: l2 = [1,2,3,4]
In [3]: df = DataFrame({'Stimulus Time': l1, 'Reaction Time': l2})
In [4]: df
Out[4]: 
   Reaction Time  Stimulus Time
0              1              1
1              2              2
2              3              3
3              4              4

In [5]: df.to_excel('test.xlsx', sheet_name='sheet1', index=False)

生成的 Excel 文件如下所示:

enter image description here

请注意,两个列表的长度必须相同,否则 pandas 会提示。要解决此问题,请将所有缺失值替换为 None

关于python - 如何使用 Python 写入 Excel 电子表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57444493/

相关文章:

c# - 带有 Visual Studio Express 的 VSTO Excel 加载项

python - 类型错误 : Object of type ResultProxy is not JSON serializable: result in sqlalchemy query?

Python3 使用 Metaclass 创建 JSON 文件中定义的类

python - 有没有一种简洁的方法来处理和忽略每行代码的异常

java - 如何从 Tableview 迭代数据以将其导出到 Microsoft Excel?

vba - 将更新的 Excel VBA 代码分发给多个最终用户

python - 使用 DictReader 从 csv 读取特定列

java - 在 Java 正则表达式中使用空格

python - 如何从 pandas 创建多间距 CSV?

python - Django 邮件未发送,但在控制台中执行