C# 把excell 轉換成圖片
2012-03-05 18:01
134 查看
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,拷貝數據到粘貼板中,然後把粘貼板中的數據,保存成圖片
相关文章推荐
- C# sql 存儲圖片
- C# 根據指定格式轉換成日期 ParseExact
- C#中將顏色轉換成網頁16進制顏色代碼
- c# 常用文檔轉換txt文件
- C#引用C++ Dll 所有類型轉換的方式(转)
- [C#][WinForm]如何切割圖片
- C#頁面轉換
- c# 常用文檔轉換txt文件
- c#全角半角轉換
- nodejs grunt 圖片轉換 插件
- C#操作Excell常用方法
- C#生成Excell代码
- C#的Tostring()格式化轉換
- c# 用PictureBox打開圖片
- 用c# oledb操作Excell文件和Text文件
- C#操作Excell常用方法
- C#引用C++ Dll 所有類型轉換的方式
- C# byte array 和變數之間的轉換
- C# 导出Excell
- c# 導出excell 改變標題顏色