excel图片导入数据库,应该怎么弄。
图片导入数据库不能像数据一样吗。
我的是WEB版本的。
我的数据库字段是IMAGE类型的。
求解决。

解决方案 »

  1.   

    http://104error.blogspot.com/2011/11/aspnet-c-mssql.html
      

  2.   

    用系统剪切板,有控制权限的问题,有点麻烦。或者是通过 Excel COM 对象,从Excel里导出Graph对象。再读取其byte[]导入DB
      

  3.   

    byte[] Special_Picture = { };
            //初始化excel对象
            Excel.Application excel = new Excel.Application();
            //打开xls文件(注意:后面的参数都用Type.Missing填充,表示使用参数的默认值)
            excel.Workbooks.Open(@"C:\2.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            Microsoft.Office.Interop.Excel.Workbook It_book = null;
            Microsoft.Office.Interop.Excel.Worksheet It_sheet = null;
            Excel.Range It_rang = null;
            int Fsize = 0;
            It_book = excel.Workbooks[1];
            It_sheet = (Worksheet)It_book.Worksheets[1];
            for (int i = 0; i < excel.Worksheets.Count; i++)
            {
                Excel.Worksheet sheet = excel.Worksheets.get_Item(i + 1) as Excel.Worksheet;//从1开始.
                for (int row = 2; row <= sheet.UsedRange.Rows.Count; row++)
                {
                    It_rang = It_sheet.get_Range("B" + row + "", Type.Missing);
                    It_rang.Select();
                    It_rang.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap);
                    if (Clipboard.ContainsImage())
                    {
                        MemoryStream imagestream = new MemoryStream();
                        Clipboard.GetImage().Save(imagestream, System.Drawing.Imaging.ImageFormat.Jpeg);
                        Fsize = (int)imagestream.Length;
                        //图片字节流
                        Special_Picture = imagestream.ToArray();
                    }
    我是这样写的,系统剪切板里面是有图片.Clipboard.ContainsImage()这个始终都为空
      

  4.   

    Excel.Worksheet sheet = ( Excel.Worksheet)Globals.ThisAddIn.Application.ActiveSheet;
    Excel.Range br;
    br = sheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, System.Type.Missing);
    Excel.Range oRange;
    oRange = sheet.get_Range("A1", br);
    oRange.Copy(System.Type.Missing);
    System.Drawing.Image img = System.Windows.Forms.Clipboard.GetImage();
    img.Save("c:\\abc.png");
    //Clipboard.SetImage(img)
      

  5.   

     LS
    Excel.Worksheet sheet = ( Excel.Worksheet)Globals.ThisAddIn.Application.ActiveSheet;
    Excel.Range br;
    br = sheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, System.Type.Missing);
    这是什么意思,不太懂/
      

  6.   

    office在.Net下實作,當然你喜歡自己上述的做法(自己引用)也可以。
    至於參數,自己去MSDN查一下吧﹗
      

  7.   

      不是自己引用,而是,我没发现接XLS的代码端
      

  8.   

    翻成你自己上面的碼
    Excel.Worksheet sheet = excel.Application.ActiveSheet;
    Excel.Range It_rang = sheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, System.Type.Missing);
    就是這樣而已﹗"不是自己引用,而是,我没发现接XLS的代码端"
    你的C#是什麼版本,Express版本沒有提供閞發Office的COM。
    如果你是標準、專業...的VS版本,你在開啟新的專案是就會有一個Office應用程式選擇。範例去MSDN找吧﹗
      

  9.   

    我这里一直显示Clipboard.ContainsImage()这是空的.不执行下面一段
      

  10.   

    请高手指点啊,我需要将excel中的数据导入到sql server表中,但是表中有两个字段是主键,导入的时候可能excel中的某条数据或某几条数据的值跟表中已经存在的值重复了,这样子程序就报错了,如何实现将excel中与数据库中重复的数据不导入而其他数据可以导入呢?