2013-12-14 7 views
0

Я обновляю данные таблицы на слайде Powerpoint 2010 (msotable type of shape) из базы данных. Я использую chart.Refresh, чтобы успешно обновить мастер слайдов, содержащий диаграммы (msochart). Я хочу сделать то же самое для таблиц типов фигур. Но для таблиц нет метода обновления, и мой слайд-слайд не обновляется (обновляется) после успешного обновления основного слайд-представления. Я использую C# 4.0 для офиса 2010.
Любая идея, как обновить представление слайдов таблицы? http://office.microsoft.com/en-001/powerpoint-help/what-is-a-slide-master-HA010280572.aspxОбновить представление слайдов слайдов

ответ

0

Найдено решение. Когда нет способа обновления, я делаю взлом: sh.Width = sh.Width + 1; sh.Width = sh.Width - 1;

public void UpdateTable(Shape sh, System.Data.DataTable dt) 
    { 
     try 
     { 
      //Supprimer toutes les lignes existantes 
      if (sh.Table.Rows.Count >= 3) 
      { 
       int rowCount = sh.Table.Rows.Count; 
       for (int i = 3; i <= rowCount; i++) 
       { 
        sh.Table.Rows[sh.Table.Rows.Count].Delete(); 
       } 

       //Vider le contenu de la première ligne 
       for (int j = 1; j < sh.Table.Columns.Count; j++) 
       { 
        sh.Table.Cell(2, j).Shape.TextFrame.TextRange.Text = ""; 
       } 
      } 

      //Parcourir les lignes 
      for (int i = 0; i < dt.Rows.Count; i++) 
      { 
       sh.Table.Rows.Add(sh.Table.Rows.Count); 
       //Parcourir les colonnes 
       for (int j = 0; j < dt.Columns.Count; j++) 
       { 
        sh.Table.Cell(i + 2, j + 1).Shape.TextFrame.TextRange.Text = dt.Rows[i][j].ToString(); 
       } 
      } 
      sh.Table.Rows[sh.Table.Rows.Count].Delete(); 

      sh.Width = sh.Width + 1; 
      sh.Width = sh.Width - 1; 

      Marshal.ReleaseComObject(sh); 
     } 
     catch (Exception exp) 
     { 
      Logger.Error(exp); 
     } 

    } 
Смежные вопросы