5

У меня есть файл Word, в котором есть несколько графиков Excel. К сожалению, я потерял исходные графики Excel, и файл слов теперь «не связан».

Есть ли способ восстановить потерянные данные для участков? Простое копирование графика обратно в Excel, похоже, не работает, но я вижу, что данные все еще где-то там, потому что при наведении курсора на точку на графике отображаются значения.


Я нашел решение

 1) Unzip the word/powerpoint file 

 2) go to word/chart/ and open the xml files in Access

3 ответа3

4

Я должен был сделать то же самое с презентацией PowerPoint 2010. Я думаю, что как долгосрочное решение, сценарий VBA - хороший путь. Однако я не мог заставить это работать в моем случае по какой-то причине, и мне нужно было получить данные только один раз. (Как структурное решение, вы, вероятно, не должны потерять свои исходные данные в первую очередь.) Вот что можно сделать:

  1. Переименуйте файл PPT, чтобы иметь расширение .zip
  2. Распакуйте полученный архив в папку.
  3. Папка должна содержать подпапку ppt/charts/ .
  4. Откройте chart1.xml с Excel в виде таблицы XML . (Просто откройте файл, и Excel спросит вас, как его открыть.
  5. В документе будет много столбцов, многие из которых имеют одинаковое значение в каждой строке. Один столбец будет х-значениями вашего графика. Вы можете найти его, сравнив значения с тем, что вы видите в презентации. Значения y находятся в другом столбце, а в моем случае также намного ниже значений x (поэтому первые строки в столбце y-данных пусты).
  6. Я нашел, что проще всего скопировать и вставить значения x и y рядом друг с другом в новый документ.
  7. Чтобы проверить данные, выберите вставленные данные и выполните Вставка> Диаграммы> Разброс> С плавными линиями. В первом столбце должны быть значения x, во втором - значения y.
  8. Я обнаружил, что проще создать новую презентацию, используя только одну кривую из исходного файла. Однако, если имеется много диаграмм, вы, вероятно, увидите также chart2.xml и т.д. В разархивированной папке. Если диаграмма содержит более 1 строки, вам нужно будет найти дополнительные данные в XML.
2

Вы должны использовать VBA для извлечения данных. Вот одно из возможных решений VBA: http://peltiertech.com/WordPress/extract-chart-data/. Включает в себя этот код:

Sub ExtractChartData()
   Dim iSrs As Long
   Dim cht As Chart
   Dim srs As Series
   Dim ws As Worksheet

   If ActiveChart Is Nothing Then Exit Sub

   Set cht = ActiveChart
   Set ws = Worksheets.Add
   For iSrs = 1 To cht.SeriesCollection.Count
     Set srs = cht.SeriesCollection(iSrs)
     On Error Resume Next
     ws.Cells(1, 2 * iSrs).Value = srs.Name
     ws.Cells(2, 2 * iSrs - 1).Resize(srs.Points.Count).Value = _
         WorksheetFunction.Transpose(srs.XValues)
     ws.Cells(2, 2 * iSrs).Resize(srs.Points.Count).Value = _
         WorksheetFunction.Transpose(srs.Values)
   Next
 End Sub

Вот еще одно возможное решение, напрямую от Microsoft: http://support.microsoft.com/kb/300643 (также включает VBA)

0

Существует довольно грязное и грязное решение, если нет большого количества данных.

Выберите серию, выберите вкладку макета в инструментах диаграммы, добавьте метки данных, затем вы можете просто прочитать значения и ввести их там, где они вам нужны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .