Tag: python

如何使用xlrd,xlwt和xlutils将“现有”工作表添加到工作簿

如果我理解正确,工作簿的add_sheet方法创build一个新的工作表(并将其添加到工作簿)。 我有一个现有的Excel模板(带有一个格式化的工作表,用作添加信息的基础),我想使用xlutils复制并使用新工作表名称将其添加到新的工作簿多次。 我如何去实现这个? 我通过代码来了解如何将现有的工作表添加到现有的工作簿,但找不到像这样的东西? from xlrd import open_workbook from xlutils.copy import copy from xlwt import Workbook rb = open_workbook('report3.xlt',formatting_info=True) wb = copy(rb) new_book = Workbook() for distinct_employee in distinct_employees: w_sheet = wb.get_sheet(0) w_sheet.write(6,6,distinct_employee.name) # give the sheet a new name (distinct_employee.id_number) # add this sheet to new_book book.save('all_employees.xls')

python xlrd从excel文本单元格接收浮动

我正在尝试使用xlrd从Excel文件中读取值。 它一直在date,数字,直到现在的文字工作很好。 我有一个包含文本的单元格(类别)(单元格被格式化为文本)。 当我打印出单元格值时,会显示一个浮点数而不是文本。 我还打印出Cell对象的ctype来检查,它显示为Number。 我读过xlrd的文档和教程,似乎无法find为什么发生这种情况。 难道是我的Excel文件被搞乱了吗? 任何build议或指针在正确的方向? import xlrd import datetime workbook = xlrd.open_workbook('training.xls') courseSheet = workbook.sheet_by_index(0) for row in range(courseSheet.nrows): title = courseSheet.cell_value(row, 2) date = courseSheet.cell_value(row, 4) date = datetime.datetime(*xlrd.xldate_as_tuple(date, workbook.datemode)) dateTuple = date.timetuple() category = courseSheet.cell_value(row, 7) print category

我开始使用pywin32的Excel,有没有什么好的文档,我可以“跳转”的Excel命令?

不是100%确定如何使用COM工作,但我需要在我的情况下使用它,以支持从.xls和.xlsx文件读取。 我发现了一些链接,下面链接了一些代码,但是我还没有find列出或解释这些命令的任何地方。 http://www.pythonexcels.com/Basic_Excel_Driving_with_Python.html pywind32的文档在这里: http://docs.activestate.com/activepython/2.7/pywin32/PyWin32.HTML 但我不知道从哪里开始寻找所有这些。

在excel文件中打印select的工作表为python中的pdf

我需要编写一个python脚本来读取excel文件,find每个工作表,然后用excel中定义的标准格式打印这些文件。 我发现以下问题如何在Python中打开Excel文件? 这指向我http://www.python-excel.org/ 这使我能够find每个工作表的名称。 import xlrd book = xlrd.open_workbook("myfile.xls") print "Worksheet name(s):", book.sheet_names() 这导致 Worksheet name(s): [u'Form 5', u'Form 3', u'988172 Adams Road', u'379562 Adams Road', u'32380 Adams Road', u'676422 Alderman Road', u'819631 Appleyard Road', u'280998 Appleyard Road', u'781656 Atkinson Road', u'949461 Barretts Lagoon Road', u'735284 Bilyana Road', u'674784 Bilyana Road', u'490894 Blackman Road', u'721026 […]

将excel或csv文件转换为pandas多级数据框

我已经给了一个相当大的Excel文件(5k行),也作为一个CSV,我想成为一个pandas多级DataFame。 该文件的结构如下所示: SampleID OtherInfo Measurements Error Notes sample1 stuff more stuff 36 6 26 7 37 8 sample2 newstuff lots of stuff 25 6 27 7 测量次数是可变的(有时为零)。 在任何信息之间没有完整的空白行,并且“测量”和“错误”列在具有其他(string)数据的行上是空的; 这可能会使parsing(?)更困难。 有没有简单的方法来自动化这个转换? 我最初的想法是首先用Pythonparsing文件,然后在循环中将数据填充到DataFrame插槽中,但我不知道如何实现它,或者甚至是最佳的操作过程。 提前致谢!

pandas:保存为Excel编码问题

我有一个类似的问题, 这里提到的一个,但没有任何build议的方法为我工作。 我有一个中等大小的utf-8 .csv文件,其中包含很多非ascii字符。 我是从一个列中的特定值拆分文件,然后我想将每个获得的数据框保存为一个.xlsx文件,保留字符。 这不起作用,因为我得到一个错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 7: ordinal not in range(128) 这是我试过的: 明确使用xlsxwriter引擎。 这似乎没有改变任何东西。 定义一个函数(下面)来改变编码并丢弃不好的字符。 这也不会改变任何东西。 def changeencode(data): cols = data.columns for col in cols: if data[col].dtype == 'O': data[col] = data[col].str.decode('utf-8').str.encode('ascii', 'ignore') return data 把所有的攻击性字符改成其他的。 仍然没有效果(引用的错误是在这个变化后获得的)。 将文件编码为utf-16 (我相信这是正确的编码,因为我希望能够在excel之后操作文件)也无济于事。 我相信这个问题是在文件本身(因为2和3),但我不知道如何解决它。 我会很感激任何帮助。 该文件的开始被粘贴在下面。 "Submitted","your-name","youremail","phone","miasto","cityCF","innemiasto","languagesCF","morelanguages","wiek","partnerCF","messageCF","acceptance-795","Submitted Login","Submitted From","2015-12-25 14:07:58 […]

用COM接口打印Excel工作表

我已经用python编写了一堆xlwt的Excel表格。 这一切都很好,但现在我需要将它们全部转换为PDF格式。 我一直在试图用pywin32和com界面来做到这一点。 我可以像这样变得有点接近: import win32com.client o = win32com.client.Dispatch("Excel.Application") o.Visible = 1 wb = o.Workbooks.Open('foo.xls') ws = wb.Worksheets[1] ws.printout() 但不幸的是,当我这样做时,它popupAdobe打印机屏幕询问我要保存PDF的path,如果我必须input或单击确定每个页面,它以编程方式打败它的目的。 有什么办法,我可以在Python代码而不是手动input这个path? 有没有更好的方法将这些工作簿中的每个工作表转换为pdf? 亚历克斯,谢谢

使用python(openpyxl)从excel中删除网格线

我试图删除从我使用openpyxl创build的Excel工作表中的网格线,而且它不工作。 我正在这样做: wb = Workbook() ws = wb.get_active_sheet() ws.show_gridlines = False print ws.show_gridlines wb.save('file.xlsx') 该代码打印“假”,但保存的文件显示网格线。

如何在excep中使用openpyxl检测合并的单元格

我试图从包含合并单元格的Excel工作表中读取数据。 当使用openpyxl读取合并的单元格时,第一个合并的单元格包含该值,其余单元格为空。 我想知道每个单元格,如果它合并和多less个单元格合并,但我找不到任何function,这样做。 表单中有空的其他单元格,所以我不能使用它。 将感谢任何帮助,我喜欢openpyxl模块,但其他模块也可以工作。 谢谢你们!

以编程方式创build大型Excel工作表

我们使用OpenPyxl将MySQL内容以XSLX格式导出到Microsoft Excel https://bitbucket.org/ericgazoni/openpyxl/overview 但是,我们处理的数据量很大。 我们正在跑出内存的情况。 表格最多可以包含50000行以上的400列。 即使文件很大,它们也不是那么大,Microsoft Excel或OpenOffice应该有问题。 我们假设我们的问题主要来源于Python将XML DOM结构保存在内存中的效率不够高的事实。 编辑:埃里克,OpenPyxl的作者,指出有一个选项,使OpenPyxl与固定的内存使用写入。 然而,这并没有完全解决我们的问题,因为我们仍然在原始速度上遇到问题,而其他的东西却在Python中占用太多的内存。 现在我们正在寻找更有效的方法来创buildExcel文件。 最好使用Python,但是如果我们找不到一个好的解决scheme,我们也可能要看看其他的编程语言。 选项,不以任何特定的顺序,包括 1)使用OpenOffice和PyUno,希望他们的内存结构比OpenPyxl更有效率,并且TCP / IP调用网桥足够高效 2)Openpyxl使用xml.etree。 Python lxml(libxml2本机扩展)会更有效率的XML内存结构,是否有可能直接用xml.etreereplacelxml插入,例如与猴子修补? (如果有明确的好处,则可以将这些更改提供给Openpyxl) 3)从MySQL导出到CSV,然后使用Python和文件迭代将CSV文件直接后处理到XSLX 4)使用其他编程语言和库(Java) 指针: http://dev.lethain.com/handling-very-large-csv-and-xml-files-in-python/ Writing xlsx with java…