精华内容
下载资源
问答
  • 亲测,完美解决excel转换成html后图片无法显示的问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
  • EXCEL 或WPS 自动插入图片代码代码、例子、图片文件 完整,可运行。
  • 因为某些原因,我们的Excel里会放入一些图片链接,但查看的时候需要一个个点开,通过浏览器显示,非常麻烦。 我们可以通过python的openpyxl这个库来解决此问题,一键替换所有链接为图片。 2 环境 Python 3.7.3 64...

    1 背景

    因为某些原因,我们的Excel里会放入一些图片链接,但查看的时候需要一个个点开,通过浏览器显示,非常麻烦。

    我们可以通过python的openpyxl这个库来解决此问题,一键替换所有链接为图片。

    2 环境

    Python 3.7.3 64-bit

    openpyxl 3.0.0 (用于操作Excel)

    requests 2.22.0 (用于下载图片)

    validators 0.14.1 (用于校验文本是否是链接)

    3 openpyxl

    wb = openpyxl.load_workbook(path)  # 加载Excel文件
    
    sheet_names = wb.sheetnames  # 获取Excel的sheet列表
    
    sheet = wb[sheet_name]  # 指定sheet
    
    row_num = sheet.max_row  # 获取sheet行数
    column_num = sheet.max_column  # 获取sheet列数
    
    for row in sheet.rows:  # 遍历sheet所有行
    for column in sheet.columns:  # 遍历sheet所有列
    
    for row in sheet.rows:  # 遍历sheet数据单元格
        for cell in row:
            cell_value = cell.value  # 单元格值
            cell_row = cell.row  # 单元格所在行索引
            cell_column = cell.column  # 单元格所在列索引
            cell_column_letter = openpyxl.utils.get_column_letter(cell.column)  # 单元格所在列名称
            cell_coordinate = cell.coordinate  # 单元格坐标
    
    sheet.row_dimensions[cell_row].height = IMG_CELL_HEIGHT  # 设置行高
    sheet.column_dimensions[cell_column_letter].width = IMG_CELL_WIDTH  # 设置列宽
    
    img = openpyxl.drawing.image.Image(img_path)
    sheet.add_image(img, cell_coordinate)  # 往Excel里嵌入图片
    
    wb.save(filename=path_excel_with_img)  # 保存Excel

    4 主要代码

    def is_img_url(self, value: str):
            """检测单元格值是否是图片链接
            """
            if value.startswith("=HYPERLINK"): value = value[12:-2]  # 去掉excel超链接函数
            is_img_url = False
            if validators.url(value):  # 判断是否是url
                for img_ext in self.img_ext:
                    if value.lower().endswith(img_ext):  # 判断是否是图片文件后缀名
                        is_img_url = True
                        break
            return is_img_url, value
    def download_img(self, img_url, sheet_name=None, coordinate=None, timeout=15):
            """图片下载
            
            :param img_url: 图片链接
            :param sheet_name: ExcelSheet名称
            :param coordinate: Excel单元格坐标
            :param timeout: 图片下载超时时间
            """
            img_path = self.img_url_to_path(img_url)  # 图片保存地址
            if os.path.exists(img_path):  # 判断图片是否已经存在
                self.stdout(sheet_name, coordinate, img_url, self.IMG_DOWNLOAD_EXISTS)
            else:
                self.check_and_mkdir(path=img_path)  # 判断保存图片的文件夹是否存在,不存在则创建
                r = requests.get(img_url, timeout=timeout)  # 发起HTTP请求
                if not r.content[:4] == b'\xff\xd8\xff\xe0':  # 判断返回内容是否是图片格式
                    self.stdout(sheet_name, coordinate, img_url, self.IMG_DOWNLOAD_ERROR, self.IMG_URL_ERROR)
                    return False
                with open(img_path, "wb") as f:  # 保存图片至本地
                    f.write(r.content)
                self.stdout(sheet_name, coordinate, img_url, self.IMG_DOWNLOAD_DONE)
            return True
    def add_img_of_sheet(self, sheet_name):
            """Excel中添加图片
    
            :param sheet_name: Sheet名称
            """
            sheet = self.wb[sheet_name]  # 指定Sheet
            for row in sheet.rows:  # 遍历所有行
                for cell in row:  # 遍历单元格
                    cell_value = str(cell.value)  # 单元格值
                    is_img_url, img_url = self.is_img_url(cell_value)
                    if is_img_url:  # 如果单元格存放的是图片链接
                        img_path = self.img_url_to_path(img_url)  # 获取图片本地保存地址
                        if os.path.exists(img_path):  # 判断本地图片是否存在
                            try:
                                img = openpyxl.drawing.image.Image(img_path)  # 加载图片
                                img.height = self.IMG_HEIGHT  # 设置图片高度
                                img.width = self.IMG_WIDTH  # 设置图片宽度
                                sheet.add_image(img, cell.coordinate)  # 嵌入图片
                                sheet.row_dimensions[cell.row].height = self.IMG_CELL_HEIGHT  # 设置行高
                                column_letter = openpyxl.utils.get_column_letter(cell.column)  # 获取列名
                                sheet.column_dimensions[column_letter].width = self.IMG_CELL_WIDTH  # 设置列宽
                                cell.alignment =  openpyxl.styles.Alignment(wrapText=True)  # 设置单元格属性 - 自动换行
                            except Exception as e:
                                print_exc()  # 打印详细错误
                                self.img_add_failed[img_url] = (sheet_name + " " + cell.coordinate, str(e))  # 记录错误信息
                                self.stdout(sheet_name, cell.coordinate, img_url, str(e))
                        else:
                            self.img_add_failed[img_url] = (sheet_name + " " + cell.coordinate, self.IMG_DOWNLOAD_NOT_EXISTS)
                            self.stdout(sheet_name, cell.coordinate, img_url, self.IMG_DOWNLOAD_NOT_EXISTS)

    5 最终效果

    点击Trans菜单下的IMG to Excel选项,一键将Excel中的图片链接转化为图片,首先需要复制Excel文件,否则会报如下错误:

    正常效果:

    6 源码地址

    项目代码在github上:https://github.com/TheUncleWhoGrowsBeans/tkGo

    展开全文
  • excel中使用python代码

    2021-09-05 21:22:45
    这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作。 说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红...

    这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作。

    说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的Python,也仅仅只有700万的开发人员。

    Excel是全世界最流行的编程语言。对,你没看错,自从微软引入了LAMBDA定义函数后,Excel已经可以实现编程语言的算法,因此它是具备图灵完备性的,和JavaScript、Java、Python一样。

    虽然Excel对小规模数据场景来说是刚需利器,但它面对大数据时就会有些力不从心。

    我们知道一张Excel表最多能显示1048576行和16384列,处理一张几十万行的表可能就会有些卡顿,当然你可以使用VBA进行数据处理,也可以使用Python来操作Excel。

    这就是本文要讲到的主题,Python的第三方库-xlwings,它作为Python和Excel的交互工具,让你可以轻松地通过VBA来调用Python脚本,实现复杂的数据分析。

    比如说自动导入数据:

    或者随机匹配文本:

    一、为什么将Python与Excel VBA集成?

    VBA作为Excel内置的宏语言,几乎可以做任何事情,包括自动化、数据处理、分析建模等等,那为什么要用Python来集成Excel VBA呢?主要有以下三点理由:

      1. 如果你对VBA不算精通,你可以直接使用Python编写分析函数用于Excel运算,而无需使用VBA;

      1. Python相比VBA运行速度更快,且代码编写更简洁灵活;

      1. Python中有众多优秀的第三方库,随用随取,可以节省大量代码时间;

    对于Python爱好者来说,pandas、numpy等数据科学库用起来可能已经非常熟悉,如果能将它们用于Excel数据分析中,那将是如虎添翼。

    二、为什么使用xlwings?

    Python中有很多库可以操作Excel,像xlsxwriter、openpyxl、pandas、xlwings等。

    但相比其他库,xlwings性能综合来看几乎是最优秀的,而且xlwings可以实现通过Excel宏调用Python代码。

    图片来自早起Python

    xlwings的入门使用这里不多做讲解,如果大家还不了解,先看看我之前写的入门介绍:xlwings,让excel飞起来!

    安装xlwings非常简单,在命令行通过pip实现快速安装:

    pip install python
    

    安装好xlwings后,接下来需要安装xlwings的 Excel集成插件,安装之前需要关闭所有 Excel 应用,不然会报错。

    同样在命令行输入以下命令:

    xlwings addin install
    

    出现下面提示代表集成插件安装成功。

    xlwings和插件都安装好后,这时候打开Excel,会发现工具栏出现一个xlwings的菜单框,代表xlwings插件安装成功,它起到一个桥梁的作用,为VBA调用Python脚本牵线搭桥。

    另外,如果你的菜单栏还没有显示“开发工具”,那需要把“开发工具”添加到功能区,因为我们要用到宏。

    步骤很简单:

    1、在"文件"选项卡上,转到"自定义>选项"。

    2、在“自定义功能区”和“主选项卡”下,选中“开发工具”复选框。

    菜单栏显示开发工具,就可以开始使用宏。

    如果你还不知道什么是宏,可以暂且把它理解成实现自动化及批量处理的工具。

    到这一步,前期的准备工作就完成了,接下来就是实战!

    三、玩转xlwings

    要想在excel中调用python脚本,需要写VBA程序来实现,但对于不懂VBA的小伙伴来说就是个麻烦事。

    但xlwings解决了这个问题,不需要你写VBA代码就能直接在excel中调用python脚本,并将结果输出到excel表中。

    xlwings会帮助你创建.xlsm.py两个文件,在.py文件里写python代码,在.xlsm文件里点击执行,就完成了excel与python的交互。

    怎么创建这两个文件呢?非常简单,直接在命令行输入以下代码即可:

    xlwings quickstart ProjectName
    

    这里的ProjectName可以自定义,是创建后文件的名字。

    如果你想把文件创建到指定文件夹里,需要提前将命令行导航到指定目录。

    创建好后,在指定文件夹里会出现两个文件,就是之前说的.xlsm.py文件。

    我们打开.xlsm文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。

    按快捷键Alt + F11,就能调出VBA编辑器。

    Sub SampleCall()    mymodule = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))    RunPython "import " & mymodule & ";" & mymodule & ".main()"End Sub

    里面这串代码主要执行两个步骤:

    1、在.xlsm文件相同位置查找相同名称的.py文件 

    2、调用.py脚本里的main()函数

    我们先来看一个简单的例子,自动在excel表里输入['a','b','c','d','e']

    第一步:我们把.py文件里的代码改成以下形式。

    import xlwings as xw
    import pandas as pd
    
    
    def main():
        wb = xw.Book.caller()
        values = ['a','b','c','d','e']
        wb.sheets[0].range('A1').value = values
    
    
    @xw.func
    def hello(name):
        return f"Hello {name}!"
    
    
    if __name__ == "__main__":
        xw.Book("PythonExcelTest.xlsm").set_mock_caller()
        main()
    

    然后在.xlsm文件sheet1中创建一个按钮,并设置默认的宏,变成一个触发按钮。

    设置好触发按钮后,我们直接点击它,就会发现第一行出现了['a','b','c','d','e']

    同样的,我们可以把鸢尾花数据集自动导入到excel中,只需要在.py文件里改动代码即可,代码如下:

    import xlwings as xw
    import pandas as pd
    
    def main():
        wb = xw.Book.caller()
        df = pd.read_csv(r"E:\\test\\PythonExcelTest\\iris.csv")
        df['total_length'] =  df['sepal_length'] + df['petal_length']
        wb.sheets[0].range('A1').value = df
    
    
    @xw.func
    def hello(name):
        return f"Hello {name}!"
    
    
    if __name__ == "__main__":
        xw.Book("PythonExcelTest.xlsm").set_mock_caller()
        main()
    

    ​这就是在excel中调用Python脚本的全过程,你可以试试其他有趣的玩法,比如实现机器学习算法、文本清洗、数据匹配、自动化报告等等

    展开全文
  • Excel 如何将图片URL 显示为图片

    万次阅读 2018-09-12 09:41:00
    所以通过宏来完成将Excel中url替换为插入图片,又为了避免插入图片太多,导致Excel大小暴增,所以在选择了对应门店门头照片链接时才插入图片。 具体步骤如下: 1、进入对应sheet页的View Code 一种...

    由于公司需要统计根据门店业绩和装修档次定制扶持政策,所以要到处携带门店门头照片+业绩的报表,而数据库存储的是图片的链接。由于后台统计报表相对应的库暂时没有插入图片的功能。所以通过宏来完成将Excel中url替换为插入图片,又为了避免插入图片太多,导致Excel大小暴增,所以在选择了对应门店门头照片链接时才插入图片。

    具体步骤如下:
    1、进入对应sheet页的View Code

    • 一种方法:快捷键 Alt+F11
    • 一种方法:邮件sheet标签,选择View Code

    2、在编辑处一次选择 Worksheet SelectionChange
    这里写图片描述
    3、然后在对应的时间方法中插入如下代码
    代码功能为,当前选择的表格内容前七位是http://时,以这个表格内容为图片链接在改表格处插入图片。

    With Target
            If Left(.Value, 7) = "http://" Then '如果单元格内容为网址
                '添加网络图片,并设置为图片大小位置随单元格变化而变化
                ActiveSheet.Shapes.AddPicture(.Value, msoCTrue, msoCTrue, .Left, .Top, .Width, .Height).Placement = xlMoveAndSize
                .WrapText = True '单元格设置为自动换行,以隐藏网址
            End If
    End With
    展开全文
  • java实现excel图片功能

    千次阅读 2021-06-11 18:08:44
    java实现excel图片功能 先说说,我在开发中遇到让我最难受的问题吧,其实呢就是依赖版本导入过高然后当时感觉确实自己很。。,算了饶过自己吧哈哈哈哈哈,还是看代码吧 依赖部分 <dependency> <...

    java实现excel转图片功能

    先说说,我在开发中遇到让我最难受的问题吧,其实呢就是依赖版本导入过高然后当时感觉确实自己很。。,算了饶过自己吧哈哈哈哈哈,还是看代码吧

    依赖部分

        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.xls.free</artifactId>
            <version>2.2.0</version>
        </dependency>
    

    代码部分

    public static void main(String[] args) {
    		//文件所在位置,我写的多文件,单文件去掉循环即可
            String[] str={"C:\\Users\\EDZ\\Desktop\\test.xlsx","C:\\Users\\EDZ\\Desktop\\test.xlsx","C:\\Users\\EDZ\\Desktop\\test.xlsx"};
            for (String s : str) {
                Workbook wb = new Workbook();
                //位置所在位置
                wb.loadFromFile(s);
                Worksheet sheet = wb.getWorksheets().get(0);
                Random random=new Random();
                //随机起一个名称
                sheet.saveToImage("D:\\"+random.nextInt(10) +".png");
            }
        }
    

    效果截图

    这是excel效果
    在这里插入图片描述
    这是转换成图片的效果

    在这里插入图片描述
    今天分享就折磨多了,嘿嘿

    展开全文
  • Excel转为图片

    2020-01-21 13:46:30
    Java 将Excel转为图片、html、XPS、XML、CSV E_iceblue关注0人评论66人阅读2020-01-10 16:16:24 通过文档格式转换,可满足不同办公场合对文档操作的需求。本文将介绍转换Excel文档为其他常见文档格式的方法...
  • Excel中的图片 ![图片说明](https://img-ask.csdn.net/upload/201910/14/1571044813_971416.png) 发现了问题是,获取的ecahrts的base64编码有问题。 如果当前页面显示的是echarts图片,获取的编码没...
  • 前段时间爬了一些数据,但是只有excel文本,文本中有图片地址,想让图片显示出来,这就需要用到VBA了。 1-建立一个宏,名字随意 然后点编辑,复制以下内容(如果你的地址不在第一列,可以更改cells(i,1) i的值,...
  • 10 行代码提取复杂 Excel 数据

    千次阅读 2018-11-30 19:25:02
     把 Excel 文件导入关系数据库是数据分析业务中经常要做的事情,但许多 Excel 文件的格式并不规整,需要事先将其中的数据结构化后再用 SQL 语句写入数据库。而一般情况下,结构化的工作量会比较大,而且很难通用,...
  • Excel中的图片链接替换为图片

    千次阅读 2019-12-18 18:12:55
    使用前提: 第一行不能是合并单元格,...如果图片地址不是以.jpg结尾,需要更改requests部分代码 from openpyxl import load_workbook from openpyxl.drawing.image import Image import requests wb =load_wo...
  • 需求:Excel表格是学校的...难点: Excel表格中 学校的logo 是图片;是jpg,png,等格式;png格式是 如何正确获取到这张图片。 使用的第三方处理excel表格的库为: \PhpOffice\PhpSpreadsheet 代码: public sta...
  • 需求:在用户上传图片时添加图片水印,水印图大小需要...问题:水印图压缩之后,原本透明底变成白色底; 解决:小改tp5封装的图片处理类的压缩方法; 过程:定位至:thinkphp\labrary\think-image\src->crop(...
  • 图片转成Excel的一种方法

    万次阅读 2019-08-17 22:04:49
    首先,Excel作图其实就是把Excel单元格作为图片的一个像素,所以要先得到图片的像素值,然后在Excel里把对应的颜色填充到单元格里就行了。 获取图片的像素值 方法很简单,主要使用ImageIO和BufferedImage这两个...
  • 需求就是如上图的样式导出excel,第一列是根据第二列内容生成的二维码,最后一列是数据关联的附件图片 模板如下图: 模板中以{{$fe:开头,dataList为后台传递Map<String,List>数据时写的key,t是easypoi...
  • 除此之外,也有一些功能只需要生成对应的图标样式的图片就好,我们实现的时候主要用了两种方式,一种就是由前台生成图片base64码,然后后台解码生成图片插入到excel,但是这种方式有 一定的局限性,也就是当某些功能...
  • 使用Python在Excel中展示图片

    千次阅读 2018-11-19 19:44:13
    使用Python在Excel中展示图片 Python 中有个名为 xlwings 的库,它能使我们用 Python 操作 Excel,操作方式与Excel自带的 VBA 类似。最近经常使用VBA调整表格的样式,像是调整单元格的大小和填充颜色之类的,于是...
  • POI 导出excel 包含图片导出

    千次阅读 2019-07-17 13:26:33
    不多说,直接上代码 poi 3.9 HSSFWorkbook book = new HSSFWorkbook(); 这个book.close();不支持 import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
  • 在其他应用程序中经常需要使用Excel中的图表,同为Office家族...在Excel中在图表上右击,选择“导出为图片...”命令,选择保存目录,并指定图片文件名称将可以了,操作起来并不复杂,但是如果Excel文件中有大量图表,
  • 导出excel 带多张图片

    2020-11-13 19:47:10
    早上用的js-table2excel, 因为后端是多张图片拼接的,那我要把图片变成数组, 然后在一张图片一列,结果数组语法写错了,然后又去搞poi,一搞就是一天,问题是最后还没有搞出来 完整的代码如下: ...
  • 以前做过读取数据库生成excel,读取excel插入数据库,图片类的操作第一次接触,瞬间懵逼了。前辈说的好——有问题找百度,现在我们遇到的问题,基本上别人都遇到过,网上啥都有。结果还真没有,有的话也是方法...
  • i将excel另存为能启用宏的xlsm格式 二、将url转化为图片的三种方法 1、同时保留图片和连接(编写vb程序并调用对应的宏) 首先先把所有链接转化为超链接形式(蓝色字体带下划线) 有个别链接为黑体格式 开发...
  •  前段时间整理数据的时候,简直不要太扎心➳♥゛,具体过程是这样滴:从网上复制下来的数据保存到excel表格里,结果发现竟然连图片一起保存进来了,不止如此,因为需要提取超链接的URL地址,身为一个程序猿,不会...
  • Sub test() Dim rg As Range, shp As ... ----------------------... 下面代码,在矩形内部用图片填充 Selection.ShapeRange.Fill.UserPicture rg.Offset( 0 , - 1 ).Value Next End Sub 按ALT+F8运行该宏
  • MATLAB手写数字识别

    万次阅读 多人点赞 2019-07-31 14:07:22
    本文主要是根据《matlab手写神经网络实现识别手写数字》博客中的...图像大小:图片的灰度值矩阵(28,28); 图像名称:由标签和顺序号组成。标签_顺序号.bmp 训练样本:每个数字的图像名称的顺序号是从0-399,各400...
  • 开发中经常需要读取excel文件进行数据的导入或者其他处理,本文通过POI直接对excel文件直接进行操作 首先是导入相关的jar包,如下图。最下面的3个jar包是读取excel时依赖的包 读取excel文件 public Workbook ...
  • 图片转成像素点保存到Excel

    千次阅读 2020-07-31 22:12:48
    实现原理很简单,扫描图片像素点,识别出RGB数值后,转成单位格颜色填充到excel里。 由于涉及到大量计算,图片最好不要超640480像素。* 废话不多说,直接上代码 from PIL import Image import openpyxl from ...
  • 如何将数据库中的图片导出到excel里面,并以图片的形式显示出来 主要代码如下:这里面是main方法,可以拷到开发工具里跑一下。具体开发可以具体参照一下。 package com.fh.util; import java.awt.image....
  •  本文主要介绍向Excel中插入文本和图片的方法。相信大家对Excel的模型对象都有了一定的了解,和Word相似,Excel中插入文本和图片也需要依靠Range对象。但是与Word对象不同,Excel的Range对象实际上指的是Excel...
  • 基于Encoder-Decoder结构,将图像转换为文字 采用 python代码实现

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,493
精华内容 2,997
关键字:

excel图片变成代码