Войти

Показать полную графическую версию : Как получить доступ программными средствами к внедрённой в doc excel таблице?


ivanhoe75
28-10-2013, 12:06
Как получить доступ программными средствами к внедрённой в doc excel таблице? (к данным)

XPEHOMETP
28-10-2013, 12:30
Нужны некие программные фишки, зависящие от языка программирования и прочих нюансов. Я вот точно знаю, что компилятор Фортрана Silverfrost FTN95 (http://www.silverfrost.com/32/ftn95/ftn95_personal_edition.aspx) (при некоммерческом использовании бесплатный) имеет доступ к таблицам Эксель (через виджет "Браузер"). Но я никогда эту фишку даже не пробовал использовать. А нафига?

Экспортируйте таблицу Эксель в виде текст-файла, в любом доступном формате. Дальше разбирайтесь. Это намного проще будет.

Iska
28-10-2013, 14:08
Как получить доступ программными средствами к внедрённой в doc excel таблице? (к данным) »
Например, так (пример для Microsoft Office 2003):
Option Explicit

Sub Sample()
Dim objInlineShape As InlineShape
Dim objWorkbook As Object

For Each objInlineShape In ThisDocument.InlineShapes
If objInlineShape.Type = wdInlineShapeEmbeddedOLEObject Then
If objInlineShape.OLEFormat.ProgID = "Excel.Sheet.8" Then
objInlineShape.OLEFormat.Activate

Set objWorkbook = objInlineShape.OLEFormat.Object

MsgBox objWorkbook.Worksheets.Item(1).Cells(1, 1).Value

Set objWorkbook = Nothing
End If
End If
Next
End Sub

ivanhoe75
29-10-2013, 11:36
2 XPEHOMETP Экспортрование исключается. Документы уже готовы такие с внедрёнными оле-объектами.
2 Iska (javascript:PrintUserName('Iska')) http://forum.oszone.net/images/statusicon/user_online.gif спасибо!

ivanhoe75
18-11-2013, 11:53
Вот дописал до такого состояния
запись не работает. спотыкается на FileFormat все перепробовал - не проходит

Dim objShape As Word.InlineShape
Dim objOLE As Word.OLEFormat

Dim objWorkbook As Object 'Рабочая книга Excel
Dim objWorksheet As Object 'Рабочий лист
Dim objDiapazon As Object 'Диапазон ячеек

For Each objShape In ActiveDocument.InlineShapes
Set objOLE = objShape.OLEFormat

If Not objOLE Is Nothing Then
If objOLE.ProgID Like "Excel.Sheet*" Then
objOLE.Activate

Set objWorkbook = objOLE.Object
'Set objWorksheet = objWorkbook.Worksheets(1)
Set objWorksheet = objWorkbook.Worksheets("Лист1")
Set objDiapazon = objWorksheet.Range("A1:J15")

Exit For
End If
End If
' копирование таблицы в новый документ
'Dim wb As Workbook
Dim wb As Object
Dim ActiveSheet As Object
Application.ScreenUpdating = False
ActiveSheet = objWorkbook
ActiveSheet.Range ("A1:J15")
ActiveSheet.Select
ActiveSheet.Copy
'ActiveSheet.UsedRange.Copy
'xlExcel9795 xlNormal xlCSV xlXMLSpreadsheet
objWorkbook.SaveAs FileName:= _
"\\cad\...\userdata\...\Рабочий стол\sklad.csv", FileFormat:= _
xlXMLSpreadsheet, CreateBackup:=False, Local:=True
Set wb = Workbooks.Add(xlWBATWorksheet)
With wb.ActiveSheet.Cells(1, 1)
.PasteSpecial Paste:=xlPasteColumnWidths
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With

Iska
18-11-2013, 13:18
Что Вы хотели получить данным кодом?

ivanhoe75
18-11-2013, 16:04
задача была найти екселевскую таблицу в вордовском файле и сохранить в отдельный файл. Это я надёргал и пытаюсь заставить работать




© OSzone.net 2001-2012