Вверх ↑
Ответов: 537
Рейтинг: 14
#1: 2018-10-25 13:51:04 ЛС | профиль | цитата
Мне нужно было просто получить текст с excel файла, придумал как
Add(MultiElementEx,13934300,182,105)
{
link(onCharset,4910775:doAdd,[])
}
BEGIN_SDK
Add(EditMultiEx,12817496,21,21)
{
WorkCount=#29:doEvent1=Открыть файл с сайта|
EventCount=#21:onCharset=Текст файла|
Width=608
Height=480
link(doEvent1,14191527:doEvent1,[(63,27)(63,83)])
}
Add(Hub,2425826,189,105)
{
OutCount=7
link(onEvent1,14901384:doPart,[])
link(onEvent2,15147771:doText,[(258,118)(258,132)])
link(onEvent3,11593371:doDelete,[(252,125)(252,174)])
link(onEvent4,3032635:doString,[(244,132)(244,209)])
link(onEvent5,3254602:doCharset,[(236,139)(236,244)])
link(onEvent6,15974504:doString,[(228,146)(228,216)])
link(onEvent7,15076529:doDelete,[(221,153)(221,272)])
}
Add(ZipArchiveAX,12736808,315,112)
{
Point(doExtract)
link(FileName,16275495:Var2,[])
link(OutFolder,4175370:Var3,[(328,100)(370,100)])
}
Add(VisualStrings,15147771,280,126)
{
Lines=#2:xl|
Width=18
Point(doText)
Point(onText)
link(onText,12736808:doExtract,[])
}
Add(FileTools,13730143,140,105)
{
link(onEnd,2425826:doEvent1,[])
link(FileName,13568690:GetData,[])
link(NewFileName,940804:Var1,[(153,93)])
}
Add(Hub,14191527,105,77)
{
OutCount=3
link(onEvent1,13568690:doData,[(129,83)(129,48)])
link(onEvent2,14716957:doReplace,[(200,90)(200,55)])
link(onEvent3,13730143:doCopy,[(129,97)(129,118)])
}
Add(EventFromData,13568690,140,42)
{
}
Add(Replace,14716957,210,49)
{
SubStr=".xlsx"
DestStr=".zip"
link(onReplace,6303286:doData,[])
}
Add(EventFromData,6303286,259,49)
{
}
Add(FilePart,14901384,357,105)
{
link(onPath,5530568:doData,[])
link(FileName,16275495:Var3,[(363,93)])
}
Add(EventFromData,5530568,406,105)
{
}
Add(GetDataEx,940804,259,88)
{
link(Data,6303286:GetData,[])
}
Add(GetDataEx,16275495,315,88)
{
Angle=3
link(Data,118447:Var3,[])
}
Add(FileTools,11593371,266,154)
{
DelToRecycle=1
link(FileName,118447:Var2,[])
}
Add(GetDataEx,118447,266,88)
{
Angle=3
link(Data,940804:Var3,[])
}
Add(FormatStr,3032635,364,203)
{
DataCount=1
Mask="%1xl\\sharedStrings.xml"
link(onFString,7526311:doLoad,[])
link(Str1,2236223:Var2,[])
}
Add(StrList,7526311,420,175)
{
}
Add(Charset,3254602,420,238)
{
Type=7
link(onCharset,1249816:doSearch,[])
link(Text,7526311:Text,[])
}
Add(GetDataEx,4175370,364,144)
{
Angle=1
link(Data,5530568:GetData,[(412,149)])
}
Add(DirTools,15076529,308,252)
{
NoConfirmation=1
Silent=1
link(Source,15974504:FString,[])
}
Add(FormatStr,15974504,308,210)
{
DataCount=1
Mask="%1xl"
Point(FString)
link(Str1,2236223:Var1,[(314,180)])
}
Add(GetDataEx,2236223,364,175)
{
link(Data,4175370:Var2,[])
}
Add(BlockFind,1249816,469,238)
{
IncludeBlock=1
StartBlock="<si><t>"
EndBlock="</t></si>"
link(onSearch,12817496:onCharset,[(565,244)(565,27)])
}
END_SDK
Add(ODialog,14035604,133,105)
{
link(onExecute,13934300:doEvent1,[])
}
Add(Memo,4910775,231,105)
{
Width=609
Height=532
Align=5
ScrollBars=2
}
Add(Button,10346899,84,105)
{
Left=5
Top=500
Width=45
Height=25
Caption="open"
Data=String(1;2;3;4;5;6;7;8;9)
link(onClick,14035604:doExecute,[])
}
Add(MainForm,5921302,35,105)
{
Width=629
Height=578
Caption="Пример использования Zipper"
}
Add(StrList,14246140,140,203)
{
@Hint=#7:Столбцы|
Strings=#7:<c r="A|7:<c r="B|7:<c r="C|7:<c r="D|7:<c r="E|7:<c r="F|7:<c r="G|7:<c r="H|7:<c r="I|7:<c r="J|7:<c r="K|7:<c r="L|7:<c r="M|7:<c r="N|7:<c r="O|7:<c r="P|7:<c r="Q|7:<c r="R|7:<c r="S|7:<c r="T|7:<c r="U|7:<c r="V|7:<c r="W|7:<c r="X|7:<c r="Y|7:<c r="Z|8:<c r="AA|8:<c r="AB|8:<c r="AC|8:<c r="AD|8:<c r="AE|8:<c r="AF|8:<c r="AG|8:<c r="AH|8:<c r="AI|8:<c r="AJ|8:<c r="AK|8:<c r="AL|8:<c r="AM|8:<c r="AN|8:<c r="AO|8:<c r="AP|8:<c r="AQ|8:<c r="AR|8:<c r="AS|8:<c r="AT|8:<c r="AU|8:<c r="AV|8:<c r="AW|8:<c r="AX|8:<c r="AY|8:<c r="AZ|8:<c r="BA|8:<c r="BB|8:<c r="BC|8:<c r="BD|8:<c r="BE|8:<c r="BF|8:<c r="BG|8:<c r="BH|8:<c r="BI|8:<c r="BJ|8:<c r="BK|8:<c r="BL|8:<c r="BM|8:<c r="BN|8:<c r="BO|8:<c r="BP|8:<c r="BQ|8:<c r="BR|8:<c r="BS|8:<c r="BT|8:<c r="BU|8:<c r="BV|8:<c r="BW|8:<c r="BX|8:<c r="BY|8:<c r="BZ|8:<c r="CA|8:<c r="CB|8:<c r="CC|8:<c r="CD|8:<c r="CE|8:<c r="CF|8:<c r="CG|8:<c r="CH|8:<c r="CI|8:<c r="CJ|8:<c r="CK|8:<c r="CL|8:<c r="CM|8:<c r="CN|8:<c r="CO|8:<c r="CP|8:<c r="CQ|8:<c r="CR|8:<c r="CS|8:<c r="CT|8:<c r="CU|8:<c r="CV|8:<c r="CW|8:<c r="CX|8:<c r="CY|8:<c r="CZ|8:<c r="DA|8:<c r="DB|8:<c r="DC|8:<c r="DD|8:<c r="DE|8:<c r="DF|8:<c r="DG|8:<c r="DH|8:<c r="DI|8:<c r="DJ|8:<c r="DK|8:<c r="DL|8:<c r="DM|8:<c r="DN|8:<c r="DO|8:<c r="DP|8:<c r="DQ|8:<c r="DR|8:<c r="DS|8:<c r="DT|8:<c r="DU|8:<c r="DV|8:<c r="DW|8:<c r="DX|8:<c r="DY|8:<c r="DZ|
Point(onGetString)
Point(doGetString)
AddHint(-15,-24,59,13,@Hint)
}

Компонент где то нарыл https://yadi.sk/d/cviTonftBbPJYA немного изменил, удалил появление окошка с путем к каталогу.
Пол дня потратил, чтобы сделать свою открывашку файлов .xslx, по теории все просто, в файле по пути "\xl\worksheets\sheet1.xml" хранятся колонки и индексы, а в файле по пути "\xl\sharedStrings.xml" хранится список строк в безобразном виде. Задача на первый взгляд проста, нужно все расставить по своим местам, когда запустил, то мой простой файл открывается четко, а другие, такая каша получилась. Делал так: перебираю столбцы (там файл есть) начинаю с A1 и до конца подставляю значения и если такой столбик есть, получаю индекс и добавляю запись по индексу с файла sharedStrings.xml, если нет то пустая стока. И быстро все открывалось, секунд 2
карма: 4

0
Редактировалось 3 раз(а), последний 2018-10-25 13:59:46