C#根据execl批量修改图片名称
生活随笔
收集整理的這篇文章主要介紹了
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>");}
?
轉載于:https://www.cnblogs.com/professional-NET/p/4793427.html
總結
以上是生活随笔為你收集整理的C#根据execl批量修改图片名称的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java性能优化(12):最小化类和成员
- 下一篇: 曲线用线性拟合可以,用相对响应因子就不满