2017-04-11 57 views
2

我做了一個Excel添加,它必須將打印區域導出爲圖像。它工作正常,如果我從程序手動設置打印區域(「Excel.Range range = sheet.Range [」A1「,」E5「]」),但我需要在Excel中設置打印區域並導出該區域作爲圖像。有誰知道如何獲得我在Excel中設置的打印區域?如何從Excel中獲取範圍(打印區域)?

public static void Save(RibbonControlEventArgs e) 
{ 
    Excel.Window window = e.Control.Context; 

    Excel.Worksheet sheet = ((Excel.Worksheet)window.Application.ActiveSheet); 

    Excel.Range range = sheet.Range["A1", "E5"]; 

    range.CopyPicture(Excel.XlPictureAppearance.xlPrinter, Excel.XlCopyPictureFormat.xlPicture); 

    range.Copy(Type.Missing); 

    string fileName = @"U:\test.jpg"; 

    if (Clipboard.GetDataObject() != null) 
    { 
     IDataObject data = Clipboard.GetDataObject(); 

     Image image = (Image)data.GetData(DataFormats.Bitmap, true); 

     image.Save(fileName, ImageFormat.Jpeg); 
    } 

    MessageBox.Show("Save successful!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 

回答

2

試試下面的代碼:

sheet.PageSetup.PrintArea; 
+1

它工作正常。謝謝! Excel.Range range = sheet.Range [sheet.PageSetup.PrintArea]; – Adam