| 
 | 
 
 
 楼主 |
发表于 2022-6-25 22:41:23
|
显示全部楼层
 
 
 
 本帖最后由 lizhiyong_11 于 2022-6-25 22:53 编辑  
 
我在网上找到了两种第三方库可以实现我的目标,但是我还没有验证,发出来给大家分享一下 
方法一 
- # Excel xlwings制作图片
 
 - def xlwingsPic(excel_path, name):
 
 -     print('分析数据:'+name)
 
 -     app = xw.App(visible=True, add_book=False)
 
 -     # 1. 使用 xlwings 的 读取 path 文件 启动
 
 -     wb = app.books.open(excel_path)
 
 -     # 2. 读取 sheet
 
 -     sht = wb.sheets[0]
 
 -     # 3. 获取 行与列
 
 -     nrow = sht.used_range.last_cell.row
 
 -     ncol = sht.used_range.last_cell.column
 
 -     # 自动调整单元格大小。
 
 -     sht.autofit()
 
 -     # 合并‘合计’单元格
 
 -     Brow = 'C' + str(nrow)
 
 -     Hrow = 'I' + str(nrow)
 
 -     mer = Brow+':'+Hrow
 
 -     sht.range(mer).api.Merge()
 
 -     heji = sht.range(Hrow)
 
  
-     # 4. 获取有内容的 range
 
 -     range_val = sht.range(
 
 -         (1, 3),  # 获取 第一行 第一列
 
 -         (nrow, ncol-1)  # 获取 第 nrow 行 第 ncol 列
 
 -     )
 
 -     # 设置背景色
 
 -     range_val.color = (255, 255, 255)
 
 -     # 设置单元格的对齐方式
 
 -     range_val.api.HorizontalAlignment = -4108    # -4108 水平居中。 -4131 靠左,-4152 靠右。
 
 -     # range_val.api.VerticalAlignment = -4130      # -4108 垂直居中(默认)。 -4160 靠上,-4107 靠下, -4130 自动换行对齐。
 
  
-     # ‘合计’右对齐
 
 -     heji.api.HorizontalAlignment = -4152
 
  
-     # Borders(9) 底部边框,LineStyle = 1 直线。2 虚线。 5 双点划线。4 点划线。
 
 -     range_val.api.Borders(9).LineStyle = 1
 
 -     range_val.api.Borders(9).Weight = 2               # 设置边框粗细。
 
  
-     # Borders(7) 左边框
 
 -     range_val.api.Borders(7).LineStyle = 1
 
 -     range_val.api.Borders(7).Weight = 2
 
  
-     # Borders(8) 顶部框
 
 -     range_val.api.Borders(8).LineStyle = 1
 
 -     range_val.api.Borders(8).Weight = 2
 
  
-     # Borders(10) 右边框
 
 -     range_val.api.Borders(10).LineStyle = 1
 
 -     range_val.api.Borders(8).Weight = 2
 
  
-     # 区域的单元格,内部边框
 
 -     # # Borders(11) 内部垂直边线。
 
 -     range_val.api.Borders(11).LineStyle = 1
 
 -     range_val.api.Borders(11).Weight = 2
 
 -     # # Borders(12) 内部水平边线。
 
 -     range_val.api.Borders(12).LineStyle = 1
 
 -     range_val.api.Borders(12).Weight = 2
 
  
-     # 5. 复制图片区域
 
 -     range_val.api.CopyPicture()
 
 -     time.sleep(0.5)
 
 -     # 6. 粘贴
 
 -     sht.api.Paste()
 
 -     pic = sht.pictures[0]  # 当前图片
 
 -     pic.api.Copy()
 
  
-     time.sleep(0.5)
 
 -     # 获取剪贴板的图片数据
 
 -     im = ImageGrab.grabclipboard()
 
 -     time.sleep(5)
 
 -     riqi = str(time.strftime("%Y-%m-%d", time.localtime()))
 
 -     ImageAdd = 'D:\\AutoSend\\Image\\' + str(riqi + name) + '.png'
 
  
-     # 判断图片是否正确
 
 -     if isinstance(im, Image.Image):
 
 -         # print ("Image: size : %s, mode: %s" % (im.size, im.mode))
 
 -         im.save(ImageAdd)
 
 -     elif im:
 
 -         for filename in im:
 
 -             try:
 
 -                 print("filename: %s" % filename)
 
 -                 im = Image.open(filename)
 
 -             except IOError:
 
 -                 pass  # ignore this file
 
 -             else:
 
 -                 print("ImageList: size : %s, mode: %s") % (im.size, im.mode)
 
 -     else:
 
 -         print("clipboard is empty.")
 
  
-     pic.delete()  # 删除sheet上的图片
 
  
-     wb.close()  # 不保存,直接关闭
 
 -     app.quit()  # 退出
 
 -     # 返回图片保存地址
 
 -     return ImageAdd
 
  复制代码 
方法二  用excel2img 模块 
 
最后问一下,自己百度出来的第三方模块的使用说明去哪里找呀? 
 
这个问题自问自答一下把,应该去pypi上或者github上找找看 
 |   
 
 
 
 |