小编fra*_*lau的帖子

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

我正在尝试从使用openpyxl创建的excel工作表中删除网格线,但它无法正常工作.我这样做:

wb = Workbook()   
ws = wb.get_active_sheet()
ws.show_gridlines = False
print ws.show_gridlines
wb.save('file.xlsx')
Run Code Online (Sandbox Code Playgroud)

该代码打印'False',但保存的文件显示网格线.

python excel python-2.7 openpyxl

7
推荐指数
2
解决办法
5759
查看次数

在Mac上安装PySide:有一种工作方法吗?

我可能做错了,但我一直在尝试在Mac 10.12(Sierra)上安装pyside.这是我尝试的(在使用brew安装Qt之后):

  • 使用预编译包(1.2.1); 由于"不兼容的包"而失败.
  • 使用sudo -H pip install pyside(1.2.4):失败并出现以下错误:
 Qt QTGUI library not found.
 Qt QTXML library not found.
 Qt QTCORE library not found.
 CMake Error at ApiExtractor/CMakeLists.txt:82 (qt4_add_resources):
  Unknown CMake command "qt4_add_resources".
Run Code Online (Sandbox Code Playgroud)
  • 使用brew install pyside==1.2.2:工作成功,但从python程序调用它时失败ImportError: dlopen(/Library/Python/2.7/site-packages/PySide/QtCore.so, 2): Libmrary not loaded: libpyside-python2.7.1.2.dylib Referenced from: /Library/Python/2.7/site-packages/PySide/QtCore.so Reason: unsafe use of relative rpath libpyside-python2.7.1.2.dylib in /Library/Python/2.7/site-packages/PySide/QtCore.so with restricted binary

最后一个确实提供了一些希望,我尝试了PySide导入错误Mac OS X El Capitan,未加载库:@ rpath/libpyside.cpython-34m.1.2.dylib.不幸的是,解释是相当椭圆的,我最终进一步破坏了事情.

我错过了一些明显的东西吗 事实上预编译的包是旧的,Web文档没有更新,brew安装似乎不起作用(文档没有提到它)和一般问题有关pyside的问题以及答案的技术复杂性似乎没有很好的迹象.

从技术上讲,有人知道PySide在Mac OS上安装的问题是什么吗?在我的特定情况下,最好的解决方案是什么?

更一般地说,Mac上的PySide有希望改进吗?

更新(2017年1月25日):解决方法?

由于我们正在等待Pyside的更新,有人愿意接受使用brew在OS …

macos qt python-2.7

7
推荐指数
2
解决办法
7443
查看次数

将嵌入的Excel对象从docx文件转换为图像

我正在使用pandoc(通过pypandoc)将docx文件转换为非Windows机器上的markdown.这些文件可以包含图像,也可以包含其他嵌入对象.

pandoc实际上能够将嵌入式Powerpoint演示文稿(转换为EMF文件)转换,但它无法处理Excel对象(它会忽略它们).目标是使用python将这些嵌入的Excel对象转换为图像,以便它们可以作为HTML输出的一部分显示.

只要可以使用python API包装,就可以使用以其他语言编写的组件(例如bash脚本).

我意识到这可能是非Windows平台上的高级订单(例如,没有Microsoft库win32com).有没有人对此有任何成功,或有任何有根据的猜测如何进行?

要显示的单元格区域是什么?

所有嵌入对象的核心问题是确定应该显示哪些部分,因为这是核心功能.

必须有一种方法来确定要显示哪些单元格,因为在读取docx文件的内容时,Word可以使用该信息.

这是问题的症结所在.如果实际算法不能考虑到这一点,那么答案仍将被接受,只要它提供了一种提取信息的方法.

在此页面上可能会找到一些线索.

笔记

根据建议探索文件本身的结构,这里是我观察到的:如果你创建一个Mydoc.docx带有嵌入式Excel文件的简单docx文档(),你可以通过制作docx文件的副本来检查它的内容(重命名它)使用.zip扩展名)并解压缩.

  • 文本本身包含在 Mydoc/word/document.xml
  • Excel文件包含在Mydoc/word/embeddings/Excel_Sheet_1.xlsx(或类似的东西)中.

如果这是要走的路,那么问题分为两部分:

  1. 转换Excel_Sheet_1.xlsx为图像(如何知道图像和单元格区域是图像的一部分?).
  2. 调整document.xml以使其显示"指向图像"而不是指向嵌入文件.

OOXML相当复杂,特别是当你尝试做一些像我想做的那样"基本"的事情时......有没有人从Unix平台走到那里并带回一些明智的东西?

python excel openxml pandoc python-docx

7
推荐指数
1
解决办法
827
查看次数

在plpython3u过程中导入Python包时出现“找不到模块”

plpython3postgres数据库上使用存储功能MacOS(已安装标准Enterprise DB软件包)。

我可以导入标准的python包,例如:

CREATE OR REPLACE FUNCTION foo(x double precision)
RETURNS double precision
LANGUAGE plpython3u
AS $$
import math
...
$$
Run Code Online (Sandbox Code Playgroud)

但是,我无法导入安装在我机器上常规python3目录中的安装包,该目录由brew定义:

$ which python3
/usr/local/bin/python3
Run Code Online (Sandbox Code Playgroud)

import foo即使它在常规python3环境中也可以,所以将无法工作。

PostgreSQL运行时服务器是否可能没有使用与我相同的python3环境plpython3u?(也许它正在使用python3解释器,这是MacOS等问题的标准问题。)在这种情况下,我该如何检查以及如何更正配置?

实际上,我创建了一个get_py执行以下操作的存储函数:

import os
return os.popen('which python').read()
Run Code Online (Sandbox Code Playgroud)

它返回:

> select get_py()
+-----------------+
| get_py          |
|-----------------|
| /usr/bin/python |
+-----------------+
Run Code Online (Sandbox Code Playgroud)

(对于则一无所有which python3)。这似乎表明它没有使用我想要的解释器!

我该如何改变?

配置信息

  • PostgreSQL 11.5x86_64-apple-darwin,苹果LLVM 6.0版本编译
  • 我在virtualenv这里不使用任何东西。

python postgresql macos python-3.x plpython

5
推荐指数
1
解决办法
151
查看次数

Pandoc Markdown:忽略PDF中的文本(但包含在HTML中)是否已更新?

这个关于如何包含将以html而不是pdf形式显示的文本的问题已得到两次回答(Pandoc markdownPandoc markdown中的LaTeX multicolumn块:省略PDF版本中的文本,但包含在HTML版本中),我应用了推荐的解决方案:

来源如下:

My text.

<div>
This will be ignored in non-HTML output
</div>

Other text
Run Code Online (Sandbox Code Playgroud)

我使用的命令是: pandoc essai.md --from=markdown-markdown_in_html_blocks -o essai.pdf

<div>标签之间的文本仍然显示在pdf文件中。

我是否缺少明显的东西?还是自2013/2014年以来pandoc的行为发生了变化(我的版本是2016年的1.19版)?如果是,解决方案是什么?

html pandoc

4
推荐指数
1
解决办法
341
查看次数

python-docx:在后面插入一个段落

在 python-docx 中,该paragraph对象有一个方法insert_paragraph_before允许在其自身之前插入文本:

p.insert_paragraph_before("This is a text")
Run Code Online (Sandbox Code Playgroud)

没有insert_paragraph_after方法,但我认为段落对象充分了解自己,可以确定列表中的下一个段落。不幸的是,python-docx AST 的内部工作原理有点复杂(并且没有真正记录)。

我想知道如何使用以下规格对函数进行编程?

def insert_paragraph_after(para, text):
Run Code Online (Sandbox Code Playgroud)

python python-docx

4
推荐指数
1
解决办法
2万
查看次数

python-docx:在表格前插入段落

在 python-docx 中,有一个Paragraph 方法用于在另一个段落之前插入一个段落:

p2 = p.insert_paragraph_before("hello", style='Normal')
Run Code Online (Sandbox Code Playgroud)

假设我们已经保存了一个包含表格的docx文档,并且我们想在表格之前插入一个段落,例如解释。找到带有以下内容的表格相当容易:

for table in document.tables:
    ...
Run Code Online (Sandbox Code Playgroud)

不幸的是,Table对象没有insert_paragraph_before方法。如何实现这一点呢?

python python-docx

3
推荐指数
1
解决办法
5324
查看次数