Tag: python

从Excel文件中读取caching的外部字段,结果与我在Excel中看到的结果不同

我想在python3中使用xlrd来读取excel文件,但是我没有从读取单元格的结果,因为我在Excel中看到它们。 看来我试图访问的单元格有一些外部源集,从中刷新它们,但由于该源对我来说不可用,所以excel显示一些caching的值。 这些值驻留在同一个excel文件的其他位置,所以在表格中,例如“2.65111”,单元格的实际内容在excel的这个编辑栏中显示为“= BC12”。 当我尝试通过xlrd读取这个像: wb=xlrd.open_workbook("filename.xls",formatting_info=True) wb.sheet_by_name("sheetname").cell(12,9) 单元格内容显示为: 'text:'[XXXX]' (XF:95)' (其中XXXX最有可能是此外部.csv文件的一列的名称) 我希望xlrd能返回我在excel中看到的“2.65111”,或者至less“= BC12”作为其他单元格的引用,但是我不能以任何方式使用“[XXXXX]”的东西。 有没有办法让xlrd显示这两个中的任何一个? 我对这个“[XXXXX]”从哪里来的问题感到困惑,为什么这和我在excel中看到的差别太大了。 PS:我不能仅仅使用来自BC12单元的数据,因为这应该是文件的自动处理,只有“原始”单元具有固定的位置,而其他的可以在第二天在另一个随机位置。

自动转换TXT到XLS

我正在寻找自动将文件夹结构中的所有文本文件(制表符分隔)转换为.xls格式的最便宜的方式,保持列和行的形状不变。 目前我在MacOS上。 Linux和Windows可用。 编辑: import xlwt import xlrd f = open('Text.txt', 'r+') row_list = [] for row in f: row_list.append(row.split()) column_list = zip(*row_list) workbook = xlwt.Workbook() worksheet = workbook.add_sheet('Sheet1') i = 0 for column in column_list: for item in range(len(column)): worksheet.write(item, i, column[item]) workbook.save('Excel.xls') i+=1 这应该做…

阅读MS Excel的XML文件pandas数据框?

我有一个MS Excel XML(2003)文件与以下元数据: <?xml version="1.0" encoding="UTF-8"?> <?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> 我想把它读入一个pandas数据框。 什么是这样做的好方法? 谢谢。

xlrd无法读取从电子邮件附件下载的xlsx文件

这是一个非常非常奇怪的问题。 我有一个很大的excel文件(我不能讨论它的内容,因为它是敏感的数据)是一个.xlsx,是一个有效的excel文件。 当我从我的电子邮件中下载并保存在我的桌面上,并尝试使用xlrd打开工作簿时,xlrd会抛出一个AssertionError,并且不会显示出错。 当我用我的文件浏览器打开文件,然后保存(不作任何改变),它与xlrd完美的工作。 有没有人遇到过这个问题? 我尝试传递各种标志到open_workbook函数无济于事,我试着用googlesearch错误。 到目前为止我还没有find任何东西。 我使用的方法如下 file = open('bigexcelfile.xlsx') fileString = file.read() wb = open_workbook(file_contents = filestring) 请帮忙! 错误如下 回溯(最近一次通话最后): 在文件“./varify/samples/resources.py”,行354 工作簿= xlrd.open_workbook(file_contents = fileString) 在open_workbook中的文件“/home/vagrant/varify-env/lib/python2.7/site-packages/xlrd/__init__.py”,第416行 ragged_rows = ragged_rows, 在open_workbook_2007_xml中的文件“/home/vagrant/varify-env/lib/python2.7/site-packages/xlrd/xlsx.py”,第791行 x12sheet.process_stream(zflo,标题) 文件“/home/vagrant/varify-env/lib/python2.7/site-packages/xlrd/xlsx.py”,第528行,在own_process_stream self_do_row(ELEM) 在do_row中的文件“/home/vagrant/varify-env/lib/python2.7/site-packages/xlrd/xlsx.py”,第722行 断言tvalue不是None Asse田

用xlrd读取excel文件

我遇到问题,阅读由Perl脚本编写的.xls文件,我无法控制。 这些文件在单元格中包含一些格式化和换行符。 filename = '/home/shared/testfile.xls' book = xlrd.open_workbook(filename) sheet = book.sheet_by_index(0) for rowIndex in xrange(1, sheet.nrows): row = sheet.row(rowIndex) 这是抛出以下错误: _locate_stream(Workbook): seen 0 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 20 4 4 4 4 4 4 4 4 4 4 4 […]

pandas数据框从excel命名的范围

有没有一种简单的方法来从一个命名的范围在Excel中的pandas数据框。 read_excel被devise为读取工作簿中的整个工作表。

使用OpenPyXL遍历表单元和单元格,并用连续string更新单元格

我想使用OpenPyXL来search工作簿,但是我遇到了一些我希望有人可以帮忙的问题。 这里有几个障碍/待办事项: 我有一个未知数量的表格和单元格 我想要search工作簿并将工作表名称放入数组中 我想遍历每个数组项并search包含特定string的单元格 我有UNCpath引用旧服务器的单元格。 我需要提取UNCpath中的服务器名称后面的所有文本,更新服务器名称,并将剩余的文本污染回服务器名称 例如\ file-server \ blah \ blah \ blah.xlsx; 提取\文件服务器\; 用\ file-server1 \replace; 把新的名字后面留下blah \ blah \ blah.xlsx。 保存xlsx文件 我是Python的新手,所以有人能够指出我正确的方向吗? 示例代码是赞赏,因为我知道该怎么做在这一点上是通过一个已知的工作簿,已知的工作表名称,然后打印数据。 在迭代工作表和单元格时,我不知道如何包含通配符。 我已经做了什么来显示单元格的内容: from openpyxl import load_workbook, worksheet def main(): #read workbook to get data wb = load_workbook(filename = 'Book1_test.xlsx', use_iterators = True) ws = wb.get_sheet_by_name(name = 'Sheet1') #ws […]

重新组织CSV以便date不是列标题

我正在尝试重新组织一个Excel表(或csv),以便date不再是列标题。 我正在使用Python的有限的知识来尝试这样做,但由于不知道从哪里开始,我可以使用一些帮助。 在每一个date之下,logging了当天发生在特定地点的事情。 空值可以被跳过。 有些单元格包含一个“ – ”,可以转换为0.我想列date和列表示一天的数字阅读。 如果当天受到监控,地名就是一个新的行。 例子(以这种方式开始的人smh): Name,7/1/2009,7/2/2009,7/3/2009,7/4/2009….. (and so on to the present) Place A,,5,3, Place B,0,,23,– Place C,1,2,,35 我想要的是: Name, Date, Reading Place A, 7/2/2009, 5 Place A, 7/3/2009, 3 Place B, 7/1/2009, 0 Place B, 7/4/2009, 0 <— Even though this is a dash originally it can be converted to […]

Excel像pandas公式一样

我有一个这种格式的pandas数据DataFrame User_id|2014-01|2014-02|2014-03|2014-04|2014-05|…|2014-12 1 | 7 | NaN | NaN | NaN | NaN |…| NaN 2 | NaN | 5 | NaN | NaN | 9 |…| NaN 3 | 2 | 4 | NaN | NaN | NaN |…| NaN 换句话说,列是几个月,索引是user_id ,每个单元格包含一个整数,或NaN 这些数字代表已采取的行动,如果在3个月之后,则认为行动是成功的,不需要采取其他行动。 我的目标是find成功的行动清单 在Excel中,我会写一个像这样的公式: Sheet2!E5=AND(Sheet1!E5<>"NaN",Sheet1!D5="NaN",Sheet1!C5="NaN",Sheet1!B5="NaN") 然后将它拖到其余的列,然后我会有一个指标,行动是否成功。 怎样才能有效地完成大pandas? 示例输出: 对于上面给出的例子,期望的输出应该是: User_id|2014-01|2014-02|2014-03|2014-04|2014-05| 1 | T […]

使用Python的comtypes库将查询表添加到Excel的问题

我试图在Excel电子表格中使用Python的comtypes库创build一个QueryTable,但得到一个相当无误的错误… 在vba中(在工作簿中的模块中),以下代码正常工作: Sub CreateQuery() Dim con As ADODB.Connection Dim rs As ADODB.Recordset Dim ws As Worksheet Dim qt As QueryTable Set ws = ActiveWorkbook.Sheets(1) Set con = New ADODB.Connection con.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\to\Db.mdb;") Set rs = New ADODB.Recordset rs.Open "Select * from [tbl Base Data];", con Set qt = ws.QueryTables.Add(rs, ws.Range("A1")) qt.Refresh End Sub 但是下面的Python代码: import […]