/// <summary> /// 输出图片 /// </summary> /// <param name="p_img"></param> /// <param name="p_row"></param> /// <param name="p_col"></param> void RenderImage(RptTextInst p_img, int p_row, int p_col) { RptText item = p_img.Item as RptText; Kit.RunSync(() => { Rect rc = _ws.GetRangeLocation(new CellRange(p_row, p_col, item.RowSpan, item.ColSpan)); _ws.AddPicture(_ws.Pictures.Count.ToString(), new Uri(item.Val), rc.Left, rc.Top, rc.Width, rc.Height); }); }
async void AddPictureButton_Click(object sender, RoutedEventArgs e) { var filePicker = new Windows.Storage.Pickers.FileOpenPicker(); filePicker.FileTypeFilter.Add(".jpg"); filePicker.FileTypeFilter.Add(".jpeg"); filePicker.FileTypeFilter.Add(".png"); filePicker.FileTypeFilter.Add(".bmp"); filePicker.FileTypeFilter.Add(".gif"); StorageFile file = await filePicker.PickSingleFileAsync(); if (file == null) { return; } int startRow = 0; int startColumn = 0; Worksheet sheet = _excel.ActiveSheet; int selectCount = sheet.Selections.Count; if (selectCount >= 1) { CellRange cellRange = sheet.Selections[selectCount - 1]; startRow = cellRange.Row; startColumn = cellRange.Column; } try { _excel.SuspendEvent(); var stream = await file.OpenStreamForReadAsync(); sheet.AddPicture(CreatePictureName(), stream); stream.Dispose(); } finally { _excel.ResumeEvent(); _excel.RefreshPictures(); } }
async void OnAddChart(object sender, RoutedEventArgs e) { Worksheet sheet = _excel.ActiveSheet; if (sheet.Selections.Count == 0) { return; } CellRange range = sheet.Selections[0]; Rect rc = sheet.GetRangeLocation(range); Chart ct = new Chart(); ct.Width = rc.Width; ct.Height = rc.Height; ct.ChartType = _chart.ChartType; ct.Palette = _chart.Palette; ct.Header = _chart.Header; ChartLegend legend = _chart.Children[0] as ChartLegend; if (legend.Visibility == Visibility.Visible) { ChartLegend lg = new ChartLegend(); lg.Title = legend.Title; lg.Position = legend.Position; lg.Orientation = legend.Orientation; lg.OverlapChart = legend.OverlapChart; ct.Children.Add(lg); } ct.View.AxisX.Title = _chart.View.AxisX.Title; ct.View.AxisY.Title = _chart.View.AxisY.Title; ct.View.Inverted = _chart.View.Inverted; ct.Data = _data.GetData(ct.ChartType); RenderTargetBitmap bmp = new RenderTargetBitmap(); await bmp.RenderAsync(_chart); sheet.AddPicture("pic" + sheet.Pictures.Count.ToString(), bmp, rc.Left, rc.Top, rc.Width, rc.Height); }
private static void AddPicture(Worksheet currentSheet, PictureInfo pictureInfo) { Uri pictureUri = new Uri(pictureInfo.PictureFullName); BitmapImage imageSource = new BitmapImage(pictureUri); currentSheet.AddPicture(pictureInfo.NewPictrueName, imageSource, pictureInfo.RowIndex, 0.0, pictureInfo.ColumnIndex, 0.0); }