Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как получить доступ программными средствами к внедрённой в doc excel таблице? (http://forum.oszone.net/showthread.php?t=270841)

ivanhoe75 28-10-2013 12:06 2242428

Как получить доступ программными средствами к внедрённой в doc excel таблице?
 
Как получить доступ программными средствами к внедрённой в doc excel таблице? (к данным)

XPEHOMETP 28-10-2013 12:30 2242443

Нужны некие программные фишки, зависящие от языка программирования и прочих нюансов. Я вот точно знаю, что компилятор Фортрана Silverfrost FTN95 (при некоммерческом использовании бесплатный) имеет доступ к таблицам Эксель (через виджет "Браузер"). Но я никогда эту фишку даже не пробовал использовать. А нафига?

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

Iska 28-10-2013 14:08 2242504

Цитата:

Цитата ivanhoe75
Как получить доступ программными средствами к внедрённой в 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 2243102

2 XPEHOMETP Экспортрование исключается. Документы уже готовы такие с внедрёнными оле-объектами.
2 Iska спасибо!

ivanhoe75 18-11-2013 11:53 2257015

Вот дописал до такого состояния
запись не работает. спотыкается на 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 2257063

Что Вы хотели получить данным кодом?

ivanhoe75 18-11-2013 16:04 2257182

задача была найти екселевскую таблицу в вордовском файле и сохранить в отдельный файл. Это я надёргал и пытаюсь заставить работать


Время: 23:53.

Время: 23:53.
© OSzone.net 2001-