C#根据execl批量修改图片名称

做这个是出于有这个需求由于图片太多,一个个对着execl来改的话需要大量的时间且一不小心可能就改错导致图片放到服务器上无法显示,学会了一些编程,你就可以轻松解决此类问题。为了节省时间提高工作的效率。学编程好处远远不仅在于此。好好学吧。任重道远。

第一、什么上下文对象和统计受影响的数量:

DataContext db = new DataContext();
private int materiel_count = 0; //开始的记录数

第二、读取execl表

public DataSet ExecleDs(string filenameurl, string table)
{
//此驱动对应的Execl格式为 xls
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties=‘Excel 8.0; HDR=YES; IMEX=1‘";

//此驱动对应的Execl格式为 xlsx
//string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filenameurl + ";Extended Properties=‘Excel 12.0;HDR=Yes;IMEX=1;‘";

OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
DataSet ds = new DataSet();
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
odda.Fill(ds, table);
return ds;

}

第三、根据execl表的内容和图片命名规则如 555-55-0.jpg做修改并保存到新的图片文件夹下:

protected void Button1_Click(object sender, EventArgs e)
{

string result = ""; //输出导出结果成功还是失败

if (FileUpload_insert.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
{
     Response.Write("<script>alert(‘请您选择Excel文件‘)</script> ");
     return;//当无文件时,返回
}
string IsXls = System.IO.Path.GetExtension(FileUpload_insert.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
if (IsXls != ".xls")
{
         Response.Write("<script>alert(‘只可以选择Excel文件‘)</script>");
          return;//当选择的不是Excel文件时,返回
}

  string filename = FileUpload_insert.FileName; //获取Execle文件名 DateTime日期函数
   string savePath = Server.MapPath(("~\\UploadFile\\") + filename);//Server.MapPath 获得虚拟服务器相对路径

//原文件夹路径
// string OldImgUrl = FileUpload_OldImgUrl.PostedFile.FileName;
string OldImgUrl = "C:\\Users\\Administrator\\Desktop\\原图\\3.xls";

OldImgUrl = OldImgUrl.Substring(0, OldImgUrl.LastIndexOf("\\")) + "\\";

//新文件夹路径
// string NewImgUrl = FileUpload_NewImgUrl.PostedFile.FileName;
string NewImgUrl = "C:\\Users\\Administrator\\Desktop\\新图\\3.xls";
NewImgUrl = NewImgUrl.Substring(0, NewImgUrl.LastIndexOf("\\")) + "\\";

// C:\Users\Administrator\Desktop\newimg\3.xls

//如果上传的execl文件存在就删除
if (File.Exists(savePath))
{
     try
    {
     File.Delete(savePath);
    }
   catch
   {
         Response.Write("<script>alert(‘网页异常,请联系管理员!‘);</script>");
    }
}

FileUpload_insert.SaveAs(savePath); //SaveAs 将上传的文件内容保存在服务器上
DataSet ds = ExecleDs(savePath, filename); //调用自定义方法
DataRow[] dr = ds.Tables[0].Select(); //定义一个DataRow数组
int rowsnum = ds.Tables[0].Rows.Count;
if (rowsnum == 0)
{
    result = "Excel表为空表,无数据!";
}
else
{
for (int i = 0; i < dr.Length; i++)
{

string m_Code = dr[i]["流水号"].ToString(); //新商品code
string o_Code = dr[i]["旧编号"].ToString(); //旧商品code
string m_Name = dr[i]["商品名称"].ToString(); //商品名称
DirectoryInfo d = new DirectoryInfo(OldImgUrl);

FileInfo[] files = d.GetFiles();
foreach (var item in files)
{
      string fileName = item.Name;//获取一个文件名称(图片名)
      string[] nameFragments = fileName.Split(‘.‘);

      string[] imgname = nameFragments[0].Split(‘-‘);

     string imgcode = imgname[0] + "-" + imgname[1];

if (imgcode == o_Code)
{
     item.MoveTo(Path.Combine(NewImgUrl, m_Code + "-" + imgname[2] + ".jpg"));

    materiel_count++;

  }

}

}//for循环结束

}//判断execl存在行结束
if (result == "ok")
{

     result = "Excle表导入成功!重命名完成。";
}
if (result == "no")
{
     result = "请联系管理员!";
}

    Response.Write("<script>alert(‘受影响商品数量:" + (materiel_count) + " " + result + "‘);</script>");

}
时间: 2024-12-11 22:35:02

C#根据execl批量修改图片名称的相关文章

MATLAB批量修改图片名称

申明:转载请注明出处. 设在“D:\UserDesktop\pic\”目录下有很多张格式为jpg照片,命名不规则,如图. 现在用MATLAB批量修改所有图片的命名格式,改为1.jpg,2.jpg,.... 1 path = 'D:\UserDesktop\pic\'; 2 D = dir([path '*.jpg']);//图片路径 3 for i = 1:length(D) 4 a = imread([path D(i).name]);//批量读取图片名称 5 system(['ren 'a'

考试系统维护-批量修改图片名称

英语考试,按照老师的要求需要添加学生图片头像!就是让学生登录自己的信息的时候能够看到自己的头像!效果图如下:(照片省略) 其实添加进去很容易,不过就是弄个字符串,按照输入的学号来选择自己的照片就好!前几天的时候自己尝试了,不过由于当时没有全局观,并没有仔细看清图片的名字,最后仔细观察才知道,原来老师给的考试号并没有什么规律,纯属是高考时候的高考号啊!不过这可就犯难了!考生登陆考试系统都是根据各自的学号登陆的,这图片的名字直接使用考试号登记的,和之前的就不相吻合了!所以就想到了'批量修改',其实很

python批量修改图片名称

1 import os 2 import re 3 import sys 4 path = r"C:\Users\liyq\Desktop\python-img\img" 5 fileList = os.listdir(path) # 待修改文件夹 6 print("修改前:" + str(fileList)) # 输出文件夹中包含的文件 7 os.chdir(path) # 将当前工作目录修改为待修改文件夹的位置 8 num = 1 # 名称变量 9 for fi

批量修改图片名称

<?php // glob() 返回指定目录下的文件名以及目录 $arr = glob("img/*.jpg"); $time = time(); $i = 100001; // 循环遍历 foreach($arr as $file) { // 获取图片后缀名 $ext = pathinfo($file,PATHINFO_EXTENSION); // 确定图片的新名字 $name = $time.$i++ . "." . $ext; // 重命名 rename

Python 批量修改图片exif属性

一共两个文件 config.ini //放配置文件 exif.py   //主程序文件 config.ini 文件源码 [global] Artist = www.blmm.com ;作者 DateTimeOriginal = now ;时间(now为当前时间,如指定时间则格式为:2017:04:09 14:13:22) Software = Adobe Photoshop CS6 Windows ;程序名称 exif.py 文件源码 #ecoding:utf-8 import pyexiv2

Python批量修改图片格式和尺寸

Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入send2trash库,是把删除的文件放进垃圾箱,而不是永久删除,这个我只是防止删除有用的文件而搞得,有点严谨了是吧,不需要的可以删掉啊. 4.我这个脚本是Python2.7编写的,但是在处理中文编码的时候非常恶心,尽管最后被我解决了,这个解决的方法,我随后会再单独写一篇,但是此刻我是建议大家不要用

bat批量修改图片的名字实现(两种方法)

问题描述: 业务中遇到需要批量修改大量图片的名字. 如下图,需要修改为图片名字"u="之后和","之前的那一串 解决思路1: bat批处理,网上查找相关代码如下: 1 @echo off 2 SetLocal EnableDelayedExpansion 3 4 REM 要查找的文件 5 set ext=*.jpg 6 7 REM 新文件名在原文件名中的起始位置,从0开始 8 set pstart=2 9 10 REM 新文件名在原文件名中的长度 11 set le

Ubuntu Linux 批量修改图片大小以及文件重命名

0x00 本文属于随笔, 仅供作者学习记录. 0x01 批量修改图片大小: [email protected]:~/$ find ./ -name '*.jpg' -exec convert -resize 220X520! {} {} \; 备注: 上述命令中, find 路径 -name 匹配.jpg后缀的文件 -exec 对find结果执行convert命令 后面是convert参数, 如果没有安装convert, sudo apt-get install convert安装即可. -re

c#开发:批量修改文件名称

公司有编辑部同事要求写个小程序,能把几百张图片按照一定的规则命名.根据要求,写了一个小程序.这里的规则是死的,没有考虑很多种要求. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;