powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Парсинг XLSX отчета
6 сообщений из 6, страница 1 из 1
Парсинг XLSX отчета
    #38740431
Есть отчет report_diagnostic_rdc_srv1.xlsx Как из этого файла выбрать в курсор колонки, которые выделены желтым цветом?
...
Рейтинг: 0 / 0
Парсинг XLSX отчета
    #38740505
Березовский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
oxl=CREATEOBJECT("Excel.Application")
oxl.Workbooks.Open(GETFILE())


FOR i=8 TO 28

m.v1l=oxl.Cells(i,1).Text
m.vl2=oxl.Cells(i,2).Text
m.vl3=oxl.Cells(i,3).Text
endfor
...
Рейтинг: 0 / 0
Парсинг XLSX отчета
    #38740542
Rostislav D. Kudryashov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
новичок20142014, Чтобы сделать работу, надо заплатить за неё деньги. Если хочешь сделать сам, скажи, что не получается.
Начать в фоксовском окне Command можно примерно так.
xl = CREATEOBJECT ('Excel.Application')
xl.Workbooks.Add("C:\Book.xlsx")
? xl.Cells(7,18).Value
? xl.Cells(7,18).Interior.Color
В твоей таблице в этой ячейке число 15 в жёлтом цвете 65535. Значит, разведка прошла успешно. Тогда можно построить цикл по всем колонкам 7-й строки, и там где Color=65535, обработать такие колонки как тебе надо.
...
Рейтинг: 0 / 0
Парсинг XLSX отчета
    #38740544
Rostislav D. Kudryashov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
новичок20142014, а чтобы догадаться, что цвет заливки Эксел хранит в свойстве Cell.Interior.Color, надо просто запустить запись макроса в какой-нибудь пустой таблице, установить эту жёлтую заливку, а после посмотреть, что в макросе образовалось.
...
Рейтинг: 0 / 0
Парсинг XLSX отчета
    #38741017
Rostislav D. Kudryashov, Цветом я выделил колонки чтобы не писать тут названия колонок. С цветом не нужно ничего делать, все ячейки не закрашены.
...
Рейтинг: 0 / 0
Парсинг XLSX отчета
    #38742794
Запарился уже, подскажите пожалуйста как скопировать из xlsx файла следующее

начиная с 8-ой строки 33 столбца в курсор, который заранее создан? Я знаю что эксель это бесконечная таблица. Нашел код, но он копирует все. Или как можно его подправить чтобы он только с 8-ой строки 33 столбца копировал?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
LOCAL lcXLBook AS STRING, lnSQLHand AS INTEGER, ;  
      lcSQLCmd AS STRING, lnSuccess AS INTEGER, ;  
      lcConnstr AS STRING  
  CLEAR  
    lcXLBook = GETFILE()
  lcConnstr = [Driver=] + ;  
      [{Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};] + ;  
      [DBQ=] + lcXLBook  
    
  IF !FILE( lcXLBook )  
      ? [Excel file not found]  
      RETURN .F.  
  ENDIF  
  lnSQLHand = SQLSTRINGCONNECT( lcConnstr )  

  lcSQLCmd = [Select * FROM "Результат$"]  
  lnSuccess = SQLEXEC( lnSQLHand, lcSQLCmd, [xlResults] )  

  IF lnSuccess < 0  
      LOCAL ARRAY laErr[1]  
      AERROR( laErr )  
      ? laErr(3)  
      SQLDISCONNECT( lnSQLHand )  
      RETURN .F.  
  ENDIF  

  SQLDISCONNECT( lnSQLHand )
  
SELECT xlResults 
brow
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Парсинг XLSX отчета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]