Questão Qualquer maneira de estilizar a tabela do Excel vinculada no PowerPoint?


Eu tenho uma tabela vinculada no meu PPT (PowerPoint 2010), que é de uma parte de uma planilha do Excel 2010. Quando atualizo os dados no Excel, a tabela é atualizada automaticamente no PPT, o que funciona bem e como esperado.

Agora, o problema é como estilizar essa tabela vinculada usando os estilos internos do PowerPoint 2010. Portanto, quando você insere uma tabela do PowerPoint regular, você tem duas guias na faixa de opções em Ferramentas de tabela: Design e layout. Na guia Design, na seção Estilos de tabela, você pode estilizar rapidamente a tabela usando vários estilos de tabela incorporados.

No entanto, quando tenho uma tabela vinculada do Excel, não tenho essas opções: quando seleciono a tabela, apenas uma guia aparece em Ferramentas de tabela na faixa de opções, que é Formato. E não posso usar nenhum dos estilos de tabela internos do PowerPoint. Isso torna a tabela vinculada inconsistente em termos de estilo, comparando com outras tabelas regulares do PowerPoint.


0


origem




Respostas:


Infelizmente, os estilos internos estão disponíveis apenas para estilizar tabelas criadas no PowerPoint em vez de vinculadas ou coladas.

Um kludge que pode ou não produzir resultados aceitáveis ​​para você seria criar uma tabela do PowerPoint vazia no estilo de sua escolha e, em seguida, sobrepor uma tabela do Excel vinculada. Um pouco de ajuste de ida e volta entre o Excel e o PowerPoint pode produzir um alinhamento razoável, correspondência de fonte, etc. O gráfico mostra os resultados de um modelo muito rápido que eu fiz.

enter image description here


1





A coisa sobre o conteúdo vinculado em geral é que o PowerPoint não tem idéia do que é; ele tem uma imagem do conteúdo (entregue a ele pelo aplicativo que produziu o conteúdo ... Excel, neste caso) e um link para o arquivo que contém os dados reais. Tudo o que pode fazer por você, se você quiser editar o conteúdo, é ativá-lo no aplicativo original.

Sua melhor aposta pode ser formatar a tabela no Excel para começar.

Se você está tentando combinar um estilo PPT específico, crie uma tabela no PPT, copie / cole no Excel. Você desejará preencher primeiro todas as células com texto, senão o Excel aplicará a formatação de texto padrão às células vazias. Ajuste as larguras das colunas conforme necessário, adicione seus dados reais e salve o arquivo. Em seguida, ligue-o de volta para o PPT.


1





Obrigado pelas respostas. Mas, parece-me que a melhor solução ainda é estilizar a tabela no PPT e editar seus dados no Excel. Então eu escrevi um pequeno pedaço de código VBA para transferir dados do Excel para o PPT e funciona perfeitamente para mim.

Aqui está o código:

Option Explicit
Option Base 1

Const WB_FINANCIALS As String = "\CPMR Financials.xlsm"
Const WS_SALES As String = "Sales Forecast"

Const SLIDE_SALES_FORECAST As String = "SalesForecast"

Const TABLE_SALES_FORECAST As String = "TableSalesForecast"

Const R_CPMA_COM_SALES As String = "cpma_complete_sales"
Const R_CPMA_LARGE_ATC_SALES As String = "cpma_large_atc_sales"
Const R_CPMA_REGULAR_ATC_SALES As String = "cpma_regular_atc_sales"
Const R_CPMA_REPORTS_SALES As String = "cpma_reports_sales"
Const R_RXR_REPORTS_SALES As String = "rxr_reports_sales"
Const R_TOTAL_SALES As String = "total_sales"


Sub ReadFinancialsBook()
    Dim XLApp As Excel.Application
    Dim FBook As Excel.Workbook
    Dim SalesForecast As Excel.Worksheet

    Set XLApp = Excel.Application
    Set FBook = XLApp.workbooks.Open(FileName:=ActivePresentation.Path + WB_FINANCIALS, ReadOnly:=True)
    Set SalesForecast = FBook.Worksheets(WS_SALES)

    Dim PPT As Presentation
    Dim SalesSlide As Slide

    Set PPT = ActivePresentation
    Set SalesSlide = PPT.Slides(SLIDE_SALES_FORECAST)
    Call ReadSalesForecast(SalesSlide, SalesForecast)

    Set SalesSlide = Nothing
    Set PPT = Nothing

    FBook.Close
    Set SalesForecast = Nothing
    Set FBook = Nothing
    Set XLApp = Nothing
End Sub

Private Sub ReadSalesForecast(S As Slide, WS As Excel.Worksheet)
    Dim T As Table
    Set T = S.Shapes(TABLE_SALES_FORECAST).Table

    Call WriteWSRangeToTable(T, 2, 4, WS, R_CPMA_COM_SALES)
    Call WriteWSRangeToTable(T, 5, 4, WS, R_CPMA_LARGE_ATC_SALES)
    Call WriteWSRangeToTable(T, 8, 4, WS, R_CPMA_REGULAR_ATC_SALES)
    Call WriteWSRangeToTable(T, 11, 4, WS, R_CPMA_REPORTS_SALES)
    Call WriteWSRangeToTable(T, 14, 4, WS, R_RXR_REPORTS_SALES)
    Call WriteWSRangeToTable(T, 17, 4, WS, R_TOTAL_SALES)

    Set T = Nothing
End Sub

Private Sub WriteWSRangeToTable(T As Table, row As Integer, col As Integer, WS As Excel.Worksheet, Name As String)
    Dim i, j, r, c As Integer
    Dim str As String

    r = WS.Range(Name).Rows.Count
    c = WS.Range(Name).Columns.Count

    For i = 1 To r
        For j = 1 To c
            str = CStr(WS.Range(Name).Cells(i, j))
            str = Format(str, "#,##0")
            T.Cell(row + i - 1, col + j - 1).Shape.TextFrame.TextRange.Text = str
        Next j
    Next i
End Sub

0