精华内容
下载资源
问答
  • 员工/学生名单、目录表、身份证/车牌号图示……许多信息类表单,都需要加入大量图片配合文字说明。尤其是当老板喊你报价表!公司产品几百、几千个……你第一反应是用常规操作,点击菜单栏 插入 图片,可发现出来...

    79eca0bc4a0020a606b264b75433453c.png

    一次性批量插入多张图片,这个操作,大家都经常都要用叭?

    做员工/学生名单、目录表、身份证/车牌号图示……许多信息类表单,都需要加入大量图片配合文字说明。

    尤其是当老板喊你做报价表

    公司产品几百、几千个……你第一反应是用常规操作,点击菜单栏 插入 图片,

    可发现出来居然是这个样子?!

    2167196b54a1205a553a2d9cb279681f.png

    结果非常糟糕!

    图片不在单元格里面。
    图片按原尺寸进来,越高质量的图片就显示越大张;导入图片太多张时,电脑常常被弄得死机。
    就算加了图片,还要一个个手动分类、输入名称……

    工序繁琐又效率低,这样做,加班可能也搞不完……

    是不是,瞬间觉得脑!壳!疼!?!

    那么今天,解题宝宝给大家传授一个「导图三步法」

    它能帮你实现:

    图片名称批量在表格里生成。
    根据图片名称,对应的图片一次性批量导入
    导入后的图片,自动排版被放进单元格内。

    39e8b47e40951a00820b74e81729b1b0.png
    ◎ 效果长这个样子

    这个「导图三步法」技术难度并不高,看了你马上就能懂。

    而且,解题宝宝特意下载了超级华丽的「复联4」角色海报,作为素材。

    大家可一边跟教程学,一边欣赏。

    好呐,开讲开讲,别眨眼,你会惊讶哒。


    图片名称批量生成

    首先,我要让每一个图片的名字,都被填进表里。

    78fbc53fe29a0a4761fa3f5e30c44a07.gif
    ◎ 效果演示

    可不是一个个手打上去!

    更高效的方法是:将图片名字批量填充到表格,再修改成文本。

    Step 1

    先把所有图片名字变成一个集合,对其定义名称。

    这样,到了后面你只要导入名称,就导入了所有图片名字。

    • 点击 公式 - 定义名称 ,打开 新建名称 设置表。

    3faac9d30b8a939a76f3fb48009afe1f.gif
    ◎ 操作演示

    Step 2

    • 名称「复仇者联盟 」
    • 引用位置 =files("E:复仇者联盟*.jpg")

    两个都改完后,就按确定。

    e4934a5467d40e5d24b6516046a98045.png

    引用位置 的语法释一下:

    E:复仇者联盟 表示图片的存储路径,这里代表我把「复仇者联盟 」图片放到了E盘。

    存储路径,可以通过点击文件夹的 地址栏 查看。

    6e7128726291502f9e3fb8dd603de378.gif
    ◎ 在文件夹的最上方
    *jpg 代表「任意命名」的jpg图片。 * 代表任意,不明确指定任何一张图片名字,等于说,所有图片都能被我引用。

    在存储路径 E:复仇者联盟 和图片 *jpg 之间加一个

    合起来成为 E:复仇者联盟*jpg

    再加 "" 并括起来,被 =files 所引用。

    最后就变成 =files("E:复仇者联盟*.jpg")

    语法是不是超级简单?你要根据自己的图片存储路径去填哒。

    Step 3

    • A2 单元格输入公式: =INDEX(复仇者联盟, ROW(A2))

    这里的 复仇者联盟 就是你刚刚定义的名称。

    Enter ,图片名字就出来啦!

    • 然后,鼠标下拉填充公式,批量生成剩余的图片名字。

    eece4816d68260c4f98a7adbe460a18e.gif
    ◎ 操作演示

    Step 4

    虽然图片名字被导入了,可它们都是被公式引用后得到的结果。

    所以要把它们改成纯文本,也就是改格式。

    • 点击 A列 ,按住 Ctrl 点击 单元格,代表取消选择它。

    因为标题行不是公式,我等一下的操作不需要对它进行。

    d72296450c51ddef17d8ad6f66767271.gif
    ◎ 操作演示
    • Ctrl+C ,点鼠标右键,选择 选择性粘贴 - 值和原格式

    3256db86a65eb5bc119d832162c3107e.gif
    ◎ 操作演示

    编辑栏里原本是公式,现在都变成文字啦!

    6595d53e1dc7a6b13f9a9b39311a75ab.png

    Step 5

    最后一步要用 替换 功能去掉 .jpg 后缀。

    • Ctrl+f 打开 查找与替换 操作窗口,选择 替换
    • 输入 查找内容 .jpg ,点击 全部替换

    557445689111f876cd2a5d824052da27.gif
    ◎ 操作演示

    看到没!后缀全部消失呐!

    图片名字的处理,到此结束。


    设置排版

    在批量导入图片之前,我们要设置好一个格式。

    让图片进来时自动调整好尺寸,被嵌入单元格,

    Step 1

    • 点击菜单栏 插入 图片,对其调整尺寸大小。

    e3d307c972d9eaabe06c236707a0a451.png
    ◎ 调完图片后的样子

    Step 2

    • 调整单元格大小,适配这张图片。

    479609ea2764078e1ca715b597a39a09.png
    ◎ 调完单元格后的样子

    然后,查询该图片的像素值。

    • 选择图片,点鼠标右键,选择 大小和属性

    这时,你打开了一个 设置图片格式 设置栏,可以查看它的高度和宽度。

    92b1cf939cb0dcdf4ea88008a8f6f69b.png

    然后用在线转换工具,把厘米转换成像素。我用的是三贝计算器,百度可搜得到。

    DPI填96,再填入高度厘米、宽度厘米,分别得出各自像素值。

    5c5d5076a0cbc75288f3076b915a326f.png

    我的高度像素是249,宽度像素是176。

    把像素值记下来,留到后面要用。

    Step 3

    通过刚刚的单元格尺寸调整,列宽已经被设好。

    但行高还是不一样,所以要处理它们,变成跟第一行行高一样。

    8b4dfe97acf614e0e8ec867df22f01dd.png
    • 选取B列,按 Ctrl 点击 B1 单元格,代表取消选择它。
      标题行不会被导入照片,所以我不需要对它设置行高。
    • 点击 开始 - 格式 ,设置 行高

    19416a41a0e9cc88389864c4d58b87d4.gif
    ◎ 操作演示

    Step 4

    因为等会批量导入图片时,现在这张测试用的图片,会重新被加载进来一次。

    所以,为了不造成重复铺排;

    要不现在删除它,要不批量导入时另外操作。

    解题宝宝选择删除。

    • 点击图片,按 ← Backspace 返回键,删除成功。

    878f42cd3a16948fc174bde6cc476a62.gif
    ◎ 操作演示

    批量导入图片

    Step 1

    • 点击 B2 单元格,输入公式: ="<table><img src=""E:复仇者联盟
      "&A2&".jpg""width=""176""height=""249"">"

    解释一下这里的语法。

    ="<table><img src=" - 代表引入图片。
    "&A2&".jpg" - 指以 A2 单元格内容命名的jpg图片。在这里,代表的就是「惊奇队长」。

    那么,配上存储地址后,

    跟刚刚设置 名称 时用 * 引用任意图片不同,

    "E:复仇者联盟"&A2&".jpg" 在这里指引用「惊奇队长」这一张图片。

    1c82f2cad40fa05395b9a703bd6d3f4d.png

    a62f059a6cc0eb285a604949dbe21245.png
    "width=""176" - 指图片宽度,要填刚刚记录下来的像素。
    "height=""249" - 指图片高度,也是填像素。

    Step 2

    • 鼠标下拉填充公式,让别的英雄名字也出来!

    b633f201665e88fa226e18392233140a.gif
    ◎ 操作演示

    Step 3

    • 点击所有单元格,按 Ctrl+C 复制到一个新建的记事本。
    • 然后,复制记事本里的文本,点击 B2 单元格,按 Ctrl+V 复制回去。

    接下来奇迹就出现了,你看!

    913767296b402b7cb2f64688499b360a.gif
    ◎ 操作演示

    所有图片都被导进来啦,尺寸大小正好适配单元格。

    3f6c8d7befd7c106dfdb6e3ec9825509.gif
    ◎ 最终效果

    批量导入图片,效果其实惊艳在最后一步。

    然而,它是通过前面的所有铺垫,层层叠加所成就哒。

    别以为步骤很多,跟着解题宝宝一步步操作,

    学会简直是易如反掌呐!


    收藏后,记得多回看才会掌握哒

    -你的转发和分享就是最好的鼓励-

    解题宝宝 / 作者

    〖Skill成长课堂〗微信公众号(ID:skill-up) / 首发

    展开全文
  • 员工/学生名单、目录表、身份证/车牌号图示……许多信息类表单,都需要加入大量图片配合文字说明。尤其是当老板喊你报价表!公司产品几百、几千个……你第一反应是用常规操作,点击菜单栏 插入 图片,可发现出来...

    7e4212f5-7a0e-eb11-8da9-e4434bdf6706.png

    一次性批量插入多张图片,这个操作,大家都经常都要用叭?

    做员工/学生名单、目录表、身份证/车牌号图示……许多信息类表单,都需要加入大量图片配合文字说明。

    尤其是当老板喊你做报价表

    公司产品几百、几千个……你第一反应是用常规操作,点击菜单栏 插入 图片,

    可发现出来居然是这个样子?!

    804212f5-7a0e-eb11-8da9-e4434bdf6706.png

    结果非常糟糕!

    图片不在单元格里面。
    图片按原尺寸进来,越高质量的图片就显示越大张;导入图片太多张时,电脑常常被弄得死机。
    就算加了图片,还要一个个手动分类、输入名称……

    工序繁琐又效率低,这样做,加班可能也搞不完……

    是不是,瞬间觉得脑!壳!疼!?!

    那么今天,解题宝宝给大家传授一个「导图三步法」

    它能帮你实现:

    图片名称批量在表格里生成。
    根据图片名称,对应的图片一次性批量导入
    导入后的图片,自动排版被放进单元格内。

    864212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 效果长这个样子

    这个「导图三步法」技术难度并不高,看了你马上就能懂。

    而且,解题宝宝特意下载了超级华丽的「复联4」角色海报,作为素材。

    大家可一边跟教程学,一边欣赏。

    好呐,开讲开讲,别眨眼,你会惊讶哒。


    图片名称批量生成

    首先,我要让每一个图片的名字,都被填进表里。

    894212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 效果演示

    可不是一个个手打上去!

    更高效的方法是:将图片名字批量填充到表格,再修改成文本。

    Step 1

    先把所有图片名字变成一个集合,对其定义名称。

    这样,到了后面你只要导入名称,就导入了所有图片名字。

    • 点击 公式 - 定义名称 ,打开 新建名称 设置表。

    8c4212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示

    Step 2

    • 名称「复仇者联盟 」
    • 引用位置 =files("E:复仇者联盟*.jpg")

    两个都改完后,就按确定。

    8f4212f5-7a0e-eb11-8da9-e4434bdf6706.png

    引用位置 的语法释一下:

    E:复仇者联盟 表示图片的存储路径,这里代表我把「复仇者联盟 」图片放到了E盘。

    存储路径,可以通过点击文件夹的 地址栏 查看。

    924212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 在文件夹的最上方
    *jpg 代表「任意命名」的jpg图片。 * 代表任意,不明确指定任何一张图片名字,等于说,所有图片都能被我引用。

    在存储路径 E:复仇者联盟 和图片 *jpg 之间加一个

    合起来成为 E:复仇者联盟*jpg

    再加 "" 并括起来,被 =files 所引用。

    最后就变成 =files("E:复仇者联盟*.jpg")

    语法是不是超级简单?你要根据自己的图片存储路径去填哒。

    Step 3

    • A2 单元格输入公式: =INDEX(复仇者联盟, ROW(A2))

    这里的 复仇者联盟 就是你刚刚定义的名称。

    Enter ,图片名字就出来啦!

    • 然后,鼠标下拉填充公式,批量生成剩余的图片名字。

    974212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示

    Step 4

    虽然图片名字被导入了,可它们都是被公式引用后得到的结果。

    所以要把它们改成纯文本,也就是改格式。

    • 点击 A列 ,按住 Ctrl 点击 单元格,代表取消选择它。

    因为标题行不是公式,我等一下的操作不需要对它进行。

    994212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示
    • Ctrl+C ,点鼠标右键,选择 选择性粘贴 - 值和原格式

    9b4212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示

    编辑栏里原本是公式,现在都变成文字啦!

    9d4212f5-7a0e-eb11-8da9-e4434bdf6706.png

    Step 5

    最后一步要用 替换 功能去掉 .jpg 后缀。

    • Ctrl+f 打开 查找与替换 操作窗口,选择 替换
    • 输入 查找内容 .jpg ,点击 全部替换

    9e4212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示

    看到没!后缀全部消失呐!

    图片名字的处理,到此结束。


    设置排版

    在批量导入图片之前,我们要设置好一个格式。

    让图片进来时自动调整好尺寸,被嵌入单元格,

    Step 1

    • 点击菜单栏 插入 图片,对其调整尺寸大小。

    9f4212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 调完图片后的样子

    Step 2

    • 调整单元格大小,适配这张图片。

    a04212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 调完单元格后的样子

    然后,查询该图片的像素值。

    • 选择图片,点鼠标右键,选择 大小和属性

    这时,你打开了一个 设置图片格式 设置栏,可以查看它的高度和宽度。

    a24212f5-7a0e-eb11-8da9-e4434bdf6706.png

    然后用在线转换工具,把厘米转换成像素。我用的是三贝计算器,百度可搜得到。

    DPI填96,再填入高度厘米、宽度厘米,分别得出各自像素值。

    a34212f5-7a0e-eb11-8da9-e4434bdf6706.png

    我的高度像素是249,宽度像素是176。

    把像素值记下来,留到后面要用。

    Step 3

    通过刚刚的单元格尺寸调整,列宽已经被设好。

    但行高还是不一样,所以要处理它们,变成跟第一行行高一样。

    a54212f5-7a0e-eb11-8da9-e4434bdf6706.png
    • 选取B列,按 Ctrl 点击 B1 单元格,代表取消选择它。
      标题行不会被导入照片,所以我不需要对它设置行高。
    • 点击 开始 - 格式 ,设置 行高

    a64212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示

    Step 4

    因为等会批量导入图片时,现在这张测试用的图片,会重新被加载进来一次。

    所以,为了不造成重复铺排;

    要不现在删除它,要不批量导入时另外操作。

    解题宝宝选择删除。

    • 点击图片,按 ← Backspace 返回键,删除成功。

    a74212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示

    批量导入图片

    Step 1

    • 点击 B2 单元格,输入公式: ="<table><img src=""E:复仇者联盟
      "&A2&".jpg""width=""176""height=""249"">"

    解释一下这里的语法。

    ="<table><img src=" - 代表引入图片。
    "&A2&".jpg" - 指以 A2 单元格内容命名的jpg图片。在这里,代表的就是「惊奇队长」。

    那么,配上存储地址后,

    跟刚刚设置 名称 时用 * 引用任意图片不同,

    "E:复仇者联盟"&A2&".jpg" 在这里指引用「惊奇队长」这一张图片。

    a84212f5-7a0e-eb11-8da9-e4434bdf6706.png

    aa4212f5-7a0e-eb11-8da9-e4434bdf6706.png
    "width=""176" - 指图片宽度,要填刚刚记录下来的像素。
    "height=""249" - 指图片高度,也是填像素。

    Step 2

    • 鼠标下拉填充公式,让别的英雄名字也出来!

    ab4212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示

    Step 3

    • 点击所有单元格,按 Ctrl+C 复制到一个新建的记事本。
    • 然后,复制记事本里的文本,点击 B2 单元格,按 Ctrl+V 复制回去。

    接下来奇迹就出现了,你看!

    ac4212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 操作演示

    所有图片都被导进来啦,尺寸大小正好适配单元格。

    ae4212f5-7a0e-eb11-8da9-e4434bdf6706.png
    ◎ 最终效果

    批量导入图片,效果其实惊艳在最后一步。

    然而,它是通过前面的所有铺垫,层层叠加所成就哒。

    别以为步骤很多,跟着解题宝宝一步步操作,

    学会简直是易如反掌呐!


    收藏后,记得多回看才会掌握哒

    -你的转发和分享就是最好的鼓励-

    解题宝宝 / 作者

    〖Skill成长课堂〗微信公众号(ID:skill-up) / 首发

    展开全文
  • 员工/学生名单、目录表、身份证/车牌号图示……许多信息类表单,都需要加入大量图片配合文字说明。尤其是当老板喊你报价表!公司产品几百、几千个……你第一反应是用常规操作,点击菜单栏 插入 图片,可发现出来...

    a551ab7522734dc3cf1e43e0c76cc6d7.png

    一次性批量插入多张图片,这个操作,大家都经常都要用叭?

    做员工/学生名单、目录表、身份证/车牌号图示……许多信息类表单,都需要加入大量图片配合文字说明。

    尤其是当老板喊你做报价表

    公司产品几百、几千个……你第一反应是用常规操作,点击菜单栏 插入 图片,

    可发现出来居然是这个样子?!

    e0a22346bf11924be4298eba97a00bfc.png

    结果非常糟糕!

    图片不在单元格里面。
    图片按原尺寸进来,越高质量的图片就显示越大张;导入图片太多张时,电脑常常被弄得死机。
    就算加了图片,还要一个个手动分类、输入名称……

    工序繁琐又效率低,这样做,加班可能也搞不完……

    是不是,瞬间觉得脑!壳!疼!?!

    那么今天,解题宝宝给大家传授一个「导图三步法」

    它能帮你实现:

    图片名称批量在表格里生成。
    根据图片名称,对应的图片一次性批量导入
    导入后的图片,自动排版被放进单元格内。

    5e5586809631a4f1a3c3d2ccd2778a9e.png
    ◎ 效果长这个样子

    这个「导图三步法」技术难度并不高,看了你马上就能懂。

    而且,解题宝宝特意下载了超级华丽的「复联4」角色海报,作为素材。

    大家可一边跟教程学,一边欣赏。

    好呐,开讲开讲,别眨眼,你会惊讶哒。


    图片名称批量生成

    首先,我要让每一个图片的名字,都被填进表里。

    6a1483ecd8d0e87e73e8253db3d81716.gif
    ◎ 效果演示

    可不是一个个手打上去!

    更高效的方法是:将图片名字批量填充到表格,再修改成文本。

    Step 1

    先把所有图片名字变成一个集合,对其定义名称。

    这样,到了后面你只要导入名称,就导入了所有图片名字。

    • 点击 公式 - 定义名称 ,打开 新建名称 设置表。

    2f1aa589a3b426b1c8dce5a100fd2ade.gif
    ◎ 操作演示

    Step 2

    • 名称「复仇者联盟 」
    • 引用位置 =files("E:复仇者联盟*.jpg")

    两个都改完后,就按确定。

    caae173c0f6a9ecbad80f25469df7b67.png

    引用位置 的语法释一下:

    E:复仇者联盟 表示图片的存储路径,这里代表我把「复仇者联盟 」图片放到了E盘。

    存储路径,可以通过点击文件夹的 地址栏 查看。

    06b05906e5acb6a2e95a6ba220c93532.gif
    ◎ 在文件夹的最上方
    *jpg 代表「任意命名」的jpg图片。 * 代表任意,不明确指定任何一张图片名字,等于说,所有图片都能被我引用。

    在存储路径 E:复仇者联盟 和图片 *jpg 之间加一个

    合起来成为 E:复仇者联盟*jpg

    再加 "" 并括起来,被 =files 所引用。

    最后就变成 =files("E:复仇者联盟*.jpg")

    语法是不是超级简单?你要根据自己的图片存储路径去填哒。

    Step 3

    • A2 单元格输入公式: =INDEX(复仇者联盟, ROW(A2))

    这里的 复仇者联盟 就是你刚刚定义的名称。

    Enter ,图片名字就出来啦!

    • 然后,鼠标下拉填充公式,批量生成剩余的图片名字。

    3b4c1a59736bfa4869ef755ebb17b20a.gif
    ◎ 操作演示

    Step 4

    虽然图片名字被导入了,可它们都是被公式引用后得到的结果。

    所以要把它们改成纯文本,也就是改格式。

    • 点击 A列 ,按住 Ctrl 点击 单元格,代表取消选择它。

    因为标题行不是公式,我等一下的操作不需要对它进行。

    9591e8687fb6fc8eaf882610a5e3834e.gif
    ◎ 操作演示
    • Ctrl+C ,点鼠标右键,选择 选择性粘贴 - 值和原格式

    6e3b437705f7206ae1cdb6515138bb9b.gif
    ◎ 操作演示

    编辑栏里原本是公式,现在都变成文字啦!

    00ee4c57a8cb1adc325d629f89fed2bf.png

    Step 5

    最后一步要用 替换 功能去掉 .jpg 后缀。

    • Ctrl+f 打开 查找与替换 操作窗口,选择 替换
    • 输入 查找内容 .jpg ,点击 全部替换

    e437931022d2469de2d69dd4f1f2c470.gif
    ◎ 操作演示

    看到没!后缀全部消失呐!

    图片名字的处理,到此结束。


    设置排版

    在批量导入图片之前,我们要设置好一个格式。

    让图片进来时自动调整好尺寸,被嵌入单元格,

    Step 1

    • 点击菜单栏 插入 图片,对其调整尺寸大小。

    c030e84db3ae4b583578bd352f0fb2d7.png
    ◎ 调完图片后的样子

    Step 2

    • 调整单元格大小,适配这张图片。

    a5582641a724202c12d5033c50a4133a.png
    ◎ 调完单元格后的样子

    然后,查询该图片的像素值。

    • 选择图片,点鼠标右键,选择 大小和属性

    这时,你打开了一个 设置图片格式 设置栏,可以查看它的高度和宽度。

    8f63d7dc7d80ed2aca61b8098f056556.png

    然后用在线转换工具,把厘米转换成像素。我用的是三贝计算器,百度可搜得到。

    DPI填96,再填入高度厘米、宽度厘米,分别得出各自像素值。

    d360b18cc4ce422c582f2aaa33ff4ee1.png

    我的高度像素是249,宽度像素是176。

    把像素值记下来,留到后面要用。

    Step 3

    通过刚刚的单元格尺寸调整,列宽已经被设好。

    但行高还是不一样,所以要处理它们,变成跟第一行行高一样。

    fc4535eab5a571a86622564cbe565ac8.png
    • 选取B列,按 Ctrl 点击 B1 单元格,代表取消选择它。
      标题行不会被导入照片,所以我不需要对它设置行高。
    • 点击 开始 - 格式 ,设置 行高

    bc80ac1b935286e97784144855a0be0b.gif
    ◎ 操作演示

    Step 4

    因为等会批量导入图片时,现在这张测试用的图片,会重新被加载进来一次。

    所以,为了不造成重复铺排;

    要不现在删除它,要不批量导入时另外操作。

    解题宝宝选择删除。

    • 点击图片,按 ← Backspace 返回键,删除成功。

    6918fdeeeedff329561f42874e09b83e.gif
    ◎ 操作演示

    批量导入图片

    Step 1

    • 点击 B2 单元格,输入公式: ="<table><img src=""E:复仇者联盟
      "&A2&".jpg""width=""176""height=""249"">"

    解释一下这里的语法。

    ="<table><img src=" - 代表引入图片。
    "&A2&".jpg" - 指以 A2 单元格内容命名的jpg图片。在这里,代表的就是「惊奇队长」。

    那么,配上存储地址后,

    跟刚刚设置 名称 时用 * 引用任意图片不同,

    "E:复仇者联盟"&A2&".jpg" 在这里指引用「惊奇队长」这一张图片。

    166c92d8b9f700b199655f8e1580d88c.png

    31992e847e043e087a8caa3c85586ac7.png
    "width=""176" - 指图片宽度,要填刚刚记录下来的像素。
    "height=""249" - 指图片高度,也是填像素。

    Step 2

    • 鼠标下拉填充公式,让别的英雄名字也出来!

    f9e3657991161cf50e230593b92b7ca3.gif
    ◎ 操作演示

    Step 3

    • 点击所有单元格,按 Ctrl+C 复制到一个新建的记事本。
    • 然后,复制记事本里的文本,点击 B2 单元格,按 Ctrl+V 复制回去。

    接下来奇迹就出现了,你看!

    4c53396e0436de2531ec954ae3d33617.gif
    ◎ 操作演示

    所有图片都被导进来啦,尺寸大小正好适配单元格。

    ecb49b0a1d60ad94c10ba8e259dba501.gif
    ◎ 最终效果

    批量导入图片,效果其实惊艳在最后一步。

    然而,它是通过前面的所有铺垫,层层叠加所成就哒。

    别以为步骤很多,跟着解题宝宝一步步操作,

    学会简直是易如反掌呐!


    收藏后,记得多回看才会掌握哒

    -你的转发和分享就是最好的鼓励-

    解题宝宝 / 作者

    〖Skill成长课堂〗微信公众号(ID:skill-up) / 首发

    展开全文
  • 因为模拟登录这块以前都没过,就简单百度了下,找到了开发用的相应的包,比如httpclient,网上也有别人做好的代码上传的,所以就先跑跑别人的代码试试呗,记住把需要的jar包先下好并导入到工程,下面是别人的代码 ...

    不同学校的教务系统设计应该会有不同,这里就只针对我的学校。本文主要讲作为纯小白连返回码302都还不懂的我是怎么一步步整的。

    我打算用的是java。

    因为模拟登录这块以前都没做过,就简单百度了下,找到了开发用的相应的包,比如httpclient,网上也有别人做好的代码上传的,所以就先跑跑别人的代码试试呗,记住把需要的jar包先下好并导入到工程,下面是别人的代码

    package com.zb.util;
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    
    
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    
    
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    
    
    import org.apache.http.impl.client.AbstractHttpClient;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    
    import org.apache.http.cookie.Cookie;
    
    
    public class postData {
    
    
    HttpResponse httpResponse;
    List<Cookie> cookies;
    String result = "";
    
    
    String data = "";
    
    public void getResult() {
    
    
    String url = "http://210.38.137.101:9080/xsxt/xsxt.jsp";// 海大
    HttpClient httpclient = new DefaultHttpClient();
    /* 建立HTTP Post连线 */
    HttpPost httpPost = new HttpPost(url);
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    
    
    // 用户名密码
    params.add(new BasicNameValuePair("userId", "xxxx"));
    params.add(new BasicNameValuePair("userPass", "xxx"));
    
    
    // 发出http request
    try {
    // 发出HTTP request
    /* 添加到httpPost提交的内容中 */
    
    
    httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
    // 执行 ,取得HTTPresponse
    
    
    httpResponse = httpclient.execute(httpPost);
    
    
    // 若状态码为200 ok
    if (httpResponse.getStatusLine().getStatusCode() == 200) { // 返回值正常
    // 获取返回的cookie
    cookies = ((AbstractHttpClient) httpclient).getCookieStore()
    .getCookies();
    
    
    
    }
    /*String timestatus = "201011311229"
    + new SimpleDateFormat("MMddHHmmss").format(new Date());*/
    // String kbURL = "http://210.38.137.101/pls/wwwbks/xk.CourseView";
    // // 查看HttpWatch里相应的URL
    
    
    String cjURL = "http://210.38.137.101/pls/wwwbks/bkscjcx.yxkc";
    
    /* 建立HttpGet联机 */
    HttpGet httpGet = new HttpGet(cjURL);
    
    
    httpGet.setHeader("Cookie", "JSESSIONID="
    + cookies.get(0).getValue());
    httpGet.setHeader("Referer", "http://210.38.137.101:9080/xsxt/left.jsp");
    
    // httpResponse.setHeader("User-Agent",
    // "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)");
    
    
    HttpResponse response2 = new DefaultHttpClient().execute(httpGet);
    
    
    /* 若状态码为200 ok */
    System.out.println("status="
    + response2.getStatusLine().getStatusCode());
    if (response2.getStatusLine().getStatusCode() == 200) {
    
    
    StringBuffer sb = new StringBuffer();
    // 获取响应实体
    HttpEntity entity = response2.getEntity();
    InputStream is = entity.getContent();
    
    
    BufferedReader br = new BufferedReader(new InputStreamReader(
    is, "GB2312"));
    // 是读取要改编码的源,源的格式是GB2312的,安源格式读进来,然后再对源码转换成想要的编码就行
    
    
    while ((data = br.readLine()) != null) {
    sb.append(data);
    }
    result = sb.toString(); // 此时result中就是我们成绩的HTML的源代码了
    }
    
    
    } catch (Exception e) {
    e.printStackTrace();
    }
    
    
    // HttpClient httpclient2 = new DefaultHttpClient();
    
    
    System.out.println(data);
    System.out.println(result);
    
    
    }
    
    
    public static void main(String[] args) {
    postData pd = new postData();
    // pd.postData();
    pd.getResult();
    
    
    }
    
    
    }


    毕竟目前小白,自然地,哪有那么容易就成功的,于是乎就开始了漫长的找问题和解决问题的过程,中间还停了挺长一段时间,没办法课多别的事多,毕竟这个只是一个课余的一个想法。我用的抓包工具是火狐下的httpfox,本想用httpwatch,可火狐上用不了,因为下的是basic版,ie竟然也用不了,老提示升级成profession版,暂时没兴趣,就凑活用先,个人觉得新手的关注点不是工具。

    废话说的有点多了。。。我就登信息系统,就看post了什么数据过去,没错,就是只有stuid,pwd,

    那不应该啊,看着别人的代码好像是对的样子,不过有些地方还是有疑问的,比如这句:httpGet.setHeader("Cookie", "JSESSIONID="+ cookies.get(0).getValue());初次运行就是这报错的,什么空指针异常的,不懂乍回事唉。。。折腾了好久,抓的包一条条的看,看各个地址,并不断在原有代码上各种调整,比如把上面这句删掉了后,就跑起来了,但获取的页面文本是,请输入账号密码之类就是根本就没登录上的意思。仔细看代码可以知道是分成两步的,前面是最开始的登录,后面跑去成绩的页面。既然登都没登上,那就先主攻登录这块,可是该post的都post啦,咋回事,当时也不懂cookies这东西,就在想是不是他的为题,经过各种百度,cookies是向服务端发出请求后服务端返回给客户端也就是浏览器的一个标识,这样你在登录后的操作就只需亮出你的cookies证明你已经登录过了,可以继续逛。那么就不该是cookies的问题了。刚刚突发奇想试了下post地址换成网页登录页面的,竟然失败了,要知道中间停下来不做前好像一直用的是他啊,晕!所以提醒大家,抓包仔细看看post到哪个地址,并不是你在哪个页面地址登录,就post到那,以我学校为例,抓包后明显登录页面是由几个模块组合起来。。还是不行,那么哪出事了,在百度过程我看到了重定向这个概念,也就是服务端返回了302,巧了,好像抓包时有,还有我发现在Post那条中的Query String里有值

    多次试验是动态的,会不会和他们有关,在抓到的包中也发现了一个与此相关的js文件,里面是几个函数,看起来就是和他的value值有关,还有抓包查看了post的地址,就是在原来的基础上加上了jym2005=value,这时我还以为这就是重定向的地址.......如果搞到他再get就好了,理想总是丰满,于是乎就开始研究怎么获取这个value,可弄了好久也没结果,百度到的query String的东西都搞不懂是啥或者和这个有关系,我还百度怎么直接获取重定向后的地址,试了网上的各种方法,没啥基础,只能照着试呗,不能实现也不会改,但还是找到了一个可以用的httpResponse.getLastHeader("Location").getValue(); 我把它获取的东西打印了出来,发现根本就不是什么jym的,而是这个东西login2.loginmessage,天,这差的太远了,然后就又一阵瞎搞,都无果而终,要是仔细点注意到上面右图的第二条的地址就省很多时间了,login2.loginmessage不就是get的那个url,重定向本就是post后再get的,因为我之前试过直接用那第二条的url在浏览器打开,结果是空白。。。没错绕了一圈用还是用httpResponse.getLastHeader("Location").getValue();完整的试了下,竟然可以登上了,现在弄出来后,发现jym啥的和得到的login2.loginmessage这两者之间必定是存在某种联系的,后者不应该只是一个单纯的字符串,这可以后面研究研究,只要登录上了,那后面的查成绩看课表就好弄了,就不多说了,另外我获取cookies值得方式比较死板,若有好的方法感谢指教。

    package test;
    
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    import org.apache.http.Header;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    
    import org.apache.http.impl.client.AbstractHttpClient;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.protocol.BasicHttpContext;
    import org.apache.http.protocol.ExecutionContext;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.cookie.Cookie;
    
    public class test {
    HttpResponse httpResponse;
    List<Cookie> cookies;
    String result = "";
    String cookie = "";  
    String data = "";
    
    	public void getResult() {
    			String url = "http://";// HIT
    			HttpClient httpclient = new DefaultHttpClient();
    			/* 建立HTTP Post连线 */
    			HttpPost httpPost = new HttpPost(url);
    			List<NameValuePair> params = new ArrayList<NameValuePair>();
    			// 用户名密码
    			params.add(new BasicNameValuePair("stuid", "xxxx"));
    			params.add(new BasicNameValuePair("pwd", "xxxx"));
    			// 发出http request
    			try {
    				// 发出HTTP request
    				/* 添加到httpPost提交的内容中 */
    				httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
    				// 执行 ,取得HTTPresponse
    				httpResponse = httpclient.execute(httpPost);
    				// 若状态码为302 重定向
    				if (httpResponse.getStatusLine().getStatusCode() == 302) { 
    					// 获取返回的cookie
    					cookies = ((AbstractHttpClient) httpclient).getCookieStore().getCookies();
    					Header[] headers = httpResponse.getAllHeaders();
    					cookie=headers[4].getValue();
    					cookie=cookie.substring(0,27);
    					//System.out.println(cookie);
    					String locationUrl=httpResponse.getLastHeader("Location").getValue();  
    					
    					/* 建立HttpGet联机 */
    					HttpGet httpGet = new HttpGet("http://"+locationUrl);
    					httpGet.setHeader("Cookie", cookie);
    					HttpResponse response2 = new DefaultHttpClient().execute(httpGet);
    					/* 若状态码为200 ok */
    					if (response2.getStatusLine().getStatusCode() == 200) {
    					System.out.println("登录成功!");
    					HttpGet httpGet1 = new HttpGet("http://");
    					httpGet1.setHeader("Cookie", cookie);
    					HttpResponse response3 = new DefaultHttpClient().execute(httpGet1);
    					StringBuffer sb = new StringBuffer();
    					HttpEntity entity = response3.getEntity();
    					InputStream is = entity.getContent();
    					BufferedReader br = new BufferedReader(new InputStreamReader(is, "GB2312"));
    					while ((data = br.readLine()) != null) {sb.append(data);}
    					result = sb.toString(); // 此时result中就是我们成绩的HTML的源代码了
    				}else
    					System.out.println("重定向跳转失败,登录失败!");
    				}else{
    					System.out.println("登陆失败!");
    				}
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    			System.out.println(data);
    			System.out.println(result);
    	}
    	public static void main(String[] args) {
    		test pd = new test();
    		pd.getResult();
    	}
    }
    


    展开全文
  • 这个系统时其实写的代码并不多,就是分包,封装对象,类似教师类,学生类,服务端类,客户端类,公共类(一些共用的系统数据)... 本来打算是先写单位的相关业务的,把每天用到的电子表格作导入操作,作一些格式化处理,...
  • ——— ———版权声明“特教资源...姓 名王羽学 科语文单 位辽宁省凤城市特殊教育学校课 题大 小教学设计教学流程:一、课前律动:《手指操》二、观看视频,导入新课:1、播放《小小智慧树》视频,引导学生观看。...
  • Access课总结

    2018-03-30 21:52:49
    1、这周学到了怎么学生表格2、感觉数据库没有想象中那么好学3、在制作表格和导入学生信息时还不是很懂
  • 今天在想怎么学生或者老师的信息导入进去,涉及数量比较多一点,我手边又正好有一部分excel的表格。就想把excel转成json然后倒入到mongodb中去。搜了下网上的资料,有不少。大部分都是C#或python的,要吗自己编译...
  • 整个项目经过三天的设计和完善,总算差不多了,基本的功能都通了,可以使用,假条的申请注销都没有问题,包括ajax的调用都很好用,学生信息里的下拉列表是个问题,解决了这个问题也让我想通了聊天室应该怎么用ajax,...
  • 今天在想怎么学生或者老师的信息导入进去,涉及数量比较多一点,我手边又正好有一部分excel的表格。就想把excel转成json然后倒入到mongodb中去。 搜了下网上的资料,有不少。大部分都是C#或python的,要吗自己...
  • 信息源于实习吧 在小学教师实习期间,我记得最清楚的就是有幸去听了指导老师的数学课,老师用游戏的方式导入,整节课又有不同的游戏穿插其中。分别使用了纸条、气球、粉笔、小圆片等媒介。顺利的、成功的将个...
  • Node.js实现Excel转JSON

    2021-01-01 18:40:24
    今天在想怎么学生或者老师的信息导入进去,涉及数量比较多一点,我手边又正好有一部分excel的表格。就想把excel转成json然后倒入到mongodb中去。  搜了下网上的资料,有不少。大部分都是C#或python的,要吗自己...
  • 信息源于实习吧 在小学教师实习期间,我记得最清楚的就是有幸去听了指导老师的数学课,老师用游戏的方式导入,整节课又有不同的游戏穿插其中。分别使用了纸条、气球、粉笔、小圆片等媒介。顺利的、成功的将个...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 fge.1.1.alpha.sdk 精灵系统,一套MFC渲染引擎,含2D/3D等渲染,效果看源码,IFEngine是整个引擎接口,IFSystem是硬件查询系统,...
  • c#学习笔记.txt

    热门讨论 2008-12-15 14:01:21
    另外他对我上一集中说Microsoft越来越不要脸也极为生气,因为相比之下,Sun也不怎么样,微软已经将C#提交设在日内瓦的ECMA(European Computer Manufacturers' Association,国际标准化机构欧洲电子计算机工业会)并...
  • MySQLDBA运维笔记.pdf

    2019-11-04 15:53:17
    mysql 总结........................................................................................................................................6 1.1 数据库的种类.......................................

空空如也

空空如也

1 2
收藏数 21
精华内容 8
关键字:

学生信息导入怎么做