Tag: python

xlwt设置样式制作错误:超过4094个XF(样式)

我用Xlwt编写一个excel文件。 它的单元格有一些风格(颜色,alignment,边框,…) 当我使用XFStyle并设置样式的边框和其他属性时,在某些情况下会出现错误:超过4094个XF(样式) 为什么? 我该怎么办这个错误? 谢谢

使用Pandas Excelwriter写入到StringIO对象?

我可以传递一个StringIO对象到pd.to_csv()就好了: io = StringIO.StringIO() pd.DataFrame().to_csv(io) 但是在使用excel作者的时候,我遇到了很多麻烦。 io = StringIO.StringIO() writer = pd.ExcelWriter(io) pd.DataFrame().to_excel(writer,"sheet name") writer.save() 返回一个 AttributeError: StringIO instance has no attribute 'rfind' 我正在尝试创build一个ExcelWriter对象,而不调用pd.ExcelWriter()但我有一些麻烦。 这是我迄今为止所尝试的: from xlsxwriter.workbook import Workbook writer = Workbook(io) pd.DataFrame().to_excel(writer,"sheet name") writer.save() 但是现在我得到一个AttributeError: 'Workbook' object has no attribute 'write_cells' 如何将excel格式的pandas数据StringIO保存到StringIO对象?

如何将python datetime.datetime转换为Excel序列date编号

我需要将date转换为Excel序列号,以便编写一个数据消除脚本。 通过在OpenOffice Calc工作簿中玩date,我可以推断出“1899年1月1日00:00:00”映射到数字零。 我写了下面的函数将python datetime对象转换为Excel序列号: def excel_date(date1): temp=dt.datetime.strptime('18990101', '%Y%m%d') delta=date1-temp total_seconds = delta.days * 86400 + delta.seconds return total_seconds 但是,当我尝试一些示例date时,这些数字与我在Excel中格式化date(以及OpenOffice Calc)时得到的数字不同。 例如,testing“2009-03-20”在Python中给出了3478032000,而excel将序列号呈现为39892。 上面的公式有什么问题? *注:我正在使用Python 2.6.3,所以没有访问datetime.total_seconds()

Python,OpenOffice:以编程方式操作电子表格

我有一个基于电子表格的自动化报告,需要每天创build一些图表,聚合函数(如SUM和AVERAGE)和格式化单元格(date,百分比等)。 我试图直接将这些结果写入Excel文件 ,但是Python的xlwt和xlrd不支持图表和函数。 此外,试图打开一个现有的,格式化的Excel文件,并更改一些单元格的值,最后删除现有文件中的所有图表和函数。 有没有办法将图表和函数写入OpenOffice电子表格,或者至less在不擦除数据的情况下更改现有电子表格中的单元格? 如果有一种Pythonic的方式来做到这一点,我可以很容易地将OO文件转换成Excel文件并发送。 提前致谢, 亚当

查看openpyxl中的行值

在python的csv模块中,有一个叫做csv.reader的函数,它允许你迭代一行,返回一个读者对象,并且可以像列表一样容纳在一个容器中。 所以当列表分配给一个variables并被打印时,即: csv_rows = list(csv.reader(csvfile, delimiter=',', quotechar='|')) print (csv_rows) > > > [['First Name', 'Last Name', 'Zodicac', 'Date of birth', 'Sex'] # I gave an example of the function outputting a header row 到目前为止,我没有在openpyxl中看到类似的function。 我可能会弄错,所以我想知道你们有没有人能帮我一把。 更新 @alecxe,你的解决scheme完美的作品(除了把我的出生date作为一个date时间格式,而不是一个普通的string)。 def iter_rows(ws): for row in ws.iter_rows(): yield [cell.value for cell in row] > > >>> pprint(list(iter_rows(ws))) [['First Nam', […]

使用pandas在Excel中编写百分比

在使用pandas之前写入csv的时候,我经常会用下面的格式来表示百分比: '%0.2f%%' % (x * 100) 加载csv时,这将由Excel正确处理。 现在,我试图使用pandas的to_excel函数和使用 (simulated * 100.).to_excel(writer, 'Simulated', float_format='%0.2f%%') 并获得“ValueError:无效文字为float():0.0126%”。 如果没有“%%”,它可以正常写入,但不会被格式化为百分比。 有没有办法在pandas的to_excel中写入百分比?

如何检测使用xlrd库读取Excel文件时单元格是否为空?

我使用函数row_values和col_values处理Excel文件: import xlrd workbook = xlrd.open_workbook( filename ) sheet_names = workbook.sheet_names() for sheet_name in sheet_names: sheet = workbook.sheet_by_name( sheet_name ) # … row_values = sheet.row_values( rownum ) # … col_values = sheet.col_values( colnum ) 例如, 我得到col_values列表 。 如果我在某一列遇到一个空单元格呢? 例如,单元格(1,1)不是空的,单元格(1,2)是空的,单元格(1,3)不是空的? 如何检测单元格(1,2)是否为空? 这是真的,我得到一个空string作为空单元格的值(对于大多数知名的程序生成Excel文件)的列表?

在pandas to_csv方法中保留列顺序

pandas的to_csv方法不保留列的顺序。 它select按字母顺序排列CSV中的列。 这是一个错误,已经被报告,应该在版本0.11.0中得到纠正。 我有0.18.0。 import pandas as pd df = pd.DataFrame({'V_pod_error' : [a], 'V_pod_used' : [b], 'U_sol_type' : [c] … … and so on upto 50 columns } pd.to_csv(df) Excel顺序: 0 U_sol type V_pod_error V_pod_used … 1 我想要的是字典中的顺序: 0 V_pod_error V_pod_used U_sol type … 1 我有很多列和名字。 我不能手动做或写出列顺序。 2013年, 这里也出现了同样的问题。 它看起来不像有更新! 我想请求社区帮助我! 这确实是有问题的。

如何使用Pandas在单元格中保存* .xlsx长URL

例如我读取Excel文件到DataFrame 2列(id和URL)。 input文件中的URL就像文本一样(没有超链接): input_f = pd.read_excel("input.xlsx") 看看这个DataFrame里面的东西 – 所有东西都被成功读取了, input_f所有URL都input_f 。 之后,当我不想将这个文件保存到扩展 input_f.to_excel("output.xlsx", index=False) 我得到了警告。 Path \ worksheet.py:836:UserWarning:由于超过了Excel对URLS的限制force_unicode(url),所以忽略链接或位置/锚点> 255个字符的URL “http:// here long URL” ) 而在output.xlsx长URL的单元格是空的,URL变成超链接。 如何解决这个问题?

从excel / vba中调用python脚本

我有一个Python代码,读取3个参数(标量)和一个文本文件,然后返回给我一个双向量。 我想在vba中编写一个macros来调用这个python代码,并将结果写入一个相同的excel表单中。 我想知道最简单的方法是什么,下面是我发现的一些东西: 在vba中调用shell()函数,但获取返回值似乎并不那么容易。 注册Python代码作为一个COM对象,并从vba调用它 – >我不知道如何做到这一点,所以如果你有一些例子,这将是更多的欢迎 在自定义工具箱中创build一个自定义工具,在vba中创build一个地理处理对象,然后添加工具箱,然后我们可以直接通过地理处理对象使用自定义工具,但这也是我不知道该怎么做的。 有小费吗?