使用Jython导出到格式化的Excel文件

时间:2014-07-03 20:57:25

标签: excel export jython

我正在做一些测试,我希望将结果输出到Excel表格。这是非常简单的数据 - 只是它是通过还是失败:

test1   PASSED
test2   FAILED

我可以像这样导出到csv文件中:

f = open('TestResults.csv', 'a')
f.write(test + "," + status)
f.close()

这将创建一个2列表,第一列是测试名称,第二列是传递还是失败(状态)。但是,我想格式化输出,以便使用" PASSED"将变成绿色,然后排成一行" FAILED"会变红。我不认为.csv文件可以包含这样的格式,所以它可能需要以某种方式转换它。

我尝试使用格式保存文件,但下次打开时总会将其删除。

如果可能的话,我宁愿在不下载外部模块的情况下这样做。

感谢。

2 个答案:

答案 0 :(得分:2)

CSV(逗号分隔值)文件格式不支持格式化。 您可以使用XLSXWriter创建支持格式化的本机Excell文档。他们的网站上有很好的文档。

我知道你不想使用任何外部模块,但这是我唯一的解决方案。

祝你好运!

答案 1 :(得分:1)

由于这个目的的主要目的是看到结果,我决定将它发送到一个html文件;使用html,我能够以易于阅读的方式格式化所有内容。

虽然这可能不是最有效的方法,但为了每次添加一个新行,我在我的jython代码中创建了一个字符串,其中包含创建新行所需的html代码 - 然后我插入信息。如果有人好奇,那么html字符串在jython代码中的外观如下:

    pageTemplate = "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>" \
    "<html>" \
    "<head>" \
    "<style type='text/css'>" \
    "p {margin: 0em 0 0em 0}" \
    "</style>" \
    "<meta content='text/html; charset=ISO-8859-1'" \
    "http-equiv='content-type'>" \
    "<title>LogFile</title>" \
    "</head>" \
    "<body>" \
    "<p><a href='%s.%s.png'>%s</a>%s%s</p>" \
    "</body>" \
    "</html>"

    #color codes the status
    if status == "PASSED":
        status_colored = "<font color='green'>PASSED</font>"
    else:
        status_colored = "<font color='red'>FAILED</font>"

    rest = self.delim + test + self.delim + comment + "\n"
    dir = os.path.join(self.path,stamp)

    #save new information to the logfile
    contents = pageTemplate % (dir, status, stamp, self.delim + status_colored, rest)
    logfile = open(self.csvpath, 'a')
    logfile.write(contents)
    logfile.close()

缺少的信息在代码的其他地方声明。此外,标题被硬编码到html文件本身,而不是通过Jython代码。