2014-07-01 25 views
0

我正在做一個WPF應用程序,使用c#將我的圖像從我的文件夾導入到excel中。我已經成功地使用微軟的Excel,但我想知道如果用戶沒有安裝微軟的Excel,可以查看文件嗎?下面是我試圖將圖像轉換爲字符串的代碼,但它不顯示在Excel中。如何在Excel中顯示圖像

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Windows; 
    using System.Windows.Controls; 
    using System.Windows.Data; 
    using System.Windows.Documents; 
    using System.Windows.Input; 
    using System.Windows.Media; 
    using System.Windows.Media.Imaging; 
    using System.Windows.Shapes; 
    using ExcelOpenXMLBasics; 
    //---------------------------------- 
    using System.Configuration; 
    using System.Data.SqlClient; 
    using System.Data; 
    using Microsoft.Win32; 
    //---------------------------------- 
    namespace WpfApplication2 
    { 
     public partial class Window2 : Window 
     { 
      List<String> stringValue; 
      List<int> intValue; 
      string Imagefile; 

      public Window2() 
      { 
       InitializeComponent(); 

       System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture; 
       System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); 
      } 

      private void btnCreateBasicWorkbook_Click(object sender, RoutedEventArgs e) 
      { 
       this.CreateBasicWorkbook("try7.xlsx", true); 
      } 

      private void CreateBasicWorkbook(string workbookName, bool createStylesInCode) 
      { 
       #region select file 
       OpenFileDialog fileChooser = new OpenFileDialog(); 
       fileChooser.Filter = "image files (*.png)|*.png|All files (*.*)|*.*"; 
       fileChooser.InitialDirectory = @"C:\"; 
       fileChooser.Title = "Check if the image has been saved into PC disk"; 
       bool? result = fileChooser.ShowDialog(); 
       Imagefile = fileChooser.FileName; 
       #endregion 

       #region 1 
       DocumentFormat.OpenXml.Packaging.SpreadsheetDocument spreadsheet; 
       DocumentFormat.OpenXml.Spreadsheet.Worksheet worksheet; 
       System.IO.StreamReader styleXmlReader; 
       string styleXml; 

       spreadsheet = Excel.CreateWorkbook(workbookName); 
       if (spreadsheet == null) 
       { 
        return; 
       } 

       if (createStylesInCode) 
       { 
        Excel.AddBasicStyles(spreadsheet); 
       } 
       else 
       { 
        using (styleXmlReader = new System.IO.StreamReader("PredefinedStyles.xml")) 
        { 
         styleXml = styleXmlReader.ReadToEnd(); 
         Excel.AddPredefinedStyles(spreadsheet, styleXml); 
        } 
       } 

       Excel.AddWorksheet(spreadsheet, "Test 1"); 
       worksheet = spreadsheet.WorkbookPart.WorksheetParts.First().Worksheet; 
       #endregion 



       //BitmapImage _Image = new BitmapImage(new Uri(@"C:\Users\ifcdu1\Desktop\limin.PNG")); 
       //string _img = _Image.ToString(); 
       //@"C:\Users\ifcdu1\Desktop\limin.PNG" 
       //byte imageArray1 = File.ReadAllBytes(@"C:\Users\ifcdu1\Desktop\limin.PNG"); 
       byte[] imageArray = System.IO.File.ReadAllBytes(Imagefile); 
       string base64ImageRepresentation = Convert.ToBase64String(imageArray); 
       //string test = Imagefile; 
       //byte[] bytes = System.Text.ASCIIEncoding.ASCII.GetBytes(test); 
       //string base64String = System.Convert.ToBase64String(bytes); 
       //Console.WriteLine("Base 64 string: " + base64String); 
       Excel.SetCellValue(spreadsheet, worksheet, 1, 1, base64ImageRepresentation, true); 

       #region 2 
       worksheet.Save(); 
       spreadsheet.Close(); 
       System.Diagnostics.Process.Start(workbookName); 
       #endregion 
      } 
     } 
    } 
+0

可能的重複[如何將圖片插入到從C#應用程序的Excel?](http://stackoverflow.com/questions/11716873/how-to-insert-a-picture-in-to-excel-from-c-sharp-app) –

+0

嗨,我不想要microsoft excel – user262942

+0

如果用戶的計算機沒有MS excel,我將無法在excel中顯示圖像。 – user262942

回答

0

因此,如果用戶有Excel,圖像將顯示。如果圖像沒有顯示(沒有Excel),圖像將以其他類似痛苦的形式打開,或者您希望圖像處於任何程序中。