C# 把excell 轉換成圖片

public  class CoverExcellToImage
{
private static string SAVEEXCELJPG = @"c:/temp/{0}.jpg";
private static readonly string[] ArrRang = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };


public static event TECOSFIS.SFIS.UpdateImage.ShowMessage eventShowMessage;
public static string StrRouseFile = "";
public static List<string> ListFileName = new List<string>();

public static string GetExcel(string excelFilePath)
{
if (!System.IO.Directory.Exists("c:/temp")) {

System.IO.Directory.CreateDirectory("c:/temp");
}

Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
app.DisplayAlerts = false;
object objMis = Type.Missing;
Microsoft.Office.Interop.Excel.Workbook singleExcel = app.Workbooks.Open(excelFilePath, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis, objMis);
try
{
StrRouseFile = excelFilePath;
//wsheet.UsedRange.Select();
if (eventShowMessage != null)
{
eventShowMessage(1, singleExcel.Worksheets.Count);

}
for (int i = 1; i <= singleExcel.Worksheets.Count; i++)
{
Microsoft.Office.Interop.Excel.Worksheet wsheet = (Microsoft.Office.Interop.Excel.Worksheet)singleExcel.Worksheets[i];


ListFileName.Add(wsheet.Name);
object ranobj = DBNull.Value;

//设置选择单元格,在复制出来。
int iRows =36;
int iCols = 8;
#warning 这里需要修改的内容
wsheet.get_Range("A5", ArrRang[iCols] + iRows.ToString()).Copy(ranobj);
IDataObject iData = Clipboard.GetDataObject();
Bitmap bits = (Bitmap)iData.GetData(DataFormats.Bitmap);
Bitmap myBitmap = new Bitmap(bits.Width, bits.Height);
Graphics g = Graphics.FromImage(myBitmap);
g.DrawImage(bits, 0, 0);

myBitmap.Save(string.Format(SAVEEXCELJPG, wsheet.Name));
Clipboard.SetDataObject("");
myBitmap.Dispose();
bits.Dispose();
if (wsheet != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(wsheet);
wsheet = null;
}
if (eventShowMessage != null)
{
eventShowMessage(2, i);

}
}


}
catch (Exception Excel)
{
throw Excel;
}
finally
{
#region 释放资源
singleExcel.Close(null, null, null);
app.Workbooks.Close();
app.Quit();
if (singleExcel != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(singleExcel);
singleExcel = null;
}
if (app != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
app = null;
}
GC.Collect();
#endregion
}
return string.Empty;
}


}

原理:

       讀取 excell文件中每一個 sheet,拷貝數據到粘貼板中,然後把粘貼板中的數據,保存成圖片

转载于:https://www.cnblogs.com/Teco/archive/2012/03/05/2380791.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值