Jump to content
wiretwister

Problem Writing Array to Excel

Recommended Posts

wiretwister

Hello Autoit Scripters,

Using Autoit v3.3.14.1 in Windows 7, I'm trying to write an array of X rows by 34 columns to an Excel 2000 sheet as follows:

_Excel_RangeWrite ($workbook, $newsheet, $outarray)

It only works up to 160 rows. An array longer than that writes nothing or hangs the system. This needs to work with up to about 32,000 rows. I've displayed $outarray right before the writing function, and it's perfect. I searched around and found an alternative to _Excel_RangeWrite that uses a different approach based on that COM stuff. It gives the same problem! The problem doesn't appear to be affected by how much data is stored in the array, only the number of rows. I must be overlooking something, like maybe a system setting. Any help would be appreciated.

Thanks in advance!

Share this post


Link to post
Share on other sites
kcvinu

Please post your code here


My Contributions

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Share this post


Link to post
Share on other sites
water

What is the return value and the value of @error and @extended after _Excel_RangeWrite?


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
kylomas

wiretwister,

This works for me...

#include <array.au3>
#include <Excel.au3>

Local $aArray[32000][34], $st = timerinit()

For $i = 0 To UBound($aArray) - 1
    For $j = 0 To UBound($aArray, 2) - 1
        $aArray[$i][$j] = StringFormat('%05i - %02i', $i, $j)
    Next
Next

ConsoleWrite('Time to populate array = ' & round(timerdiff($st)/1000,3) & ' seconds' & @CRLF)
$st = timerinit()

Local $oExcel = _Excel_Open(false)
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

$oBook = _Excel_BookNew($oExcel, 1)
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

_Excel_RangeWrite($oBook, Default, $aArray)
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

ConsoleWrite('Time to populate spreadsheet = ' & round(timerdiff($st)/1000,3) & ' seconds' & @CRLF)

Win7 x64 Home

Office/XP

Although it takes awhile.  See log...

>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\ADMIN010\Documents\excel.au3" /UserParams    
+>03:42:13 Starting AutoIt3Wrapper v.15.729.1555.0 SciTE v.3.5.4.0   Keyboard:00000409  OS:WIN_7/Service Pack 1  CPU:X64 OS:X64    Environment(Language:0409)
+>         SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE   UserDir => C:\Users\ADMIN010\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\ADMIN010\AppData\Local\AutoIt v3\SciTE 
>Running AU3Check (3.3.14.1)  from:C:\Program Files (x86)\AutoIt3  input:C:\Users\ADMIN010\Documents\excel.au3
+>03:42:13 AU3Check ended.rc:0
>Running:(3.3.14.1):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\ADMIN010\Documents\excel.au3"    
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
Time to populate array = 9.363 seconds
0 - 1
0 - 0
0 - 0
Time to populate spreadsheet = 945.006 seconds
+>03:58:08 AutoIt3.exe ended.rc:0
+>03:58:08 AutoIt3Wrapper Finished.
>Exit code: 0    Time: 955.6

kylomas


Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites
water

Excel 200 has an undocumented limit of 5641 cells that can be processed using the transpose method.
Try

_Excel_RangeWrite($workbook, $newsheet, $outarray, Default, Default, True)

This forces the UDF to bypass the transpose method (and its limitations) and use function _ArrayTranspose.

 

  • Like 1

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
water

Details about Excel up to version 2000 can be found here: https://support.microsoft.com/en-us/kb/177991

What I have found so far:
Excel 95   - 5461 cells
Excel 97   - 5461 cells
Excel 2000 - 5461 cells
Excel 2002 - 65536 rows (tested by kylomas with an [65537][2] array)
Excel 2003 - 65536 rows (because Excel 2002 and Excel 2010 have the same limit)
Excel 2007 - 65536 rows (because Excel 2002 and Excel 2010 have the same limit)
Excel 2010 - 65536 rows (tested myself with an [65537][1] array)
Excel 2013 - ?

Edited by water
  • Like 1

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
kylomas

@water - Why did my code above work?


Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites
water

I have no idea. Maybe it is caused by the way the COM error handler has changed.
Could you test your script with AutoIt 3.3.12.0 to check we get the same results?


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
kylomas

@water - I ran it initially with the workbook visible.  When it finished I navigated to the bottom (row 31999 X 34 columns = appx. 1.08 million cells).  Where did the numbers you posted come from?  And, why is transposition an issue?

 


Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites
kylomas

@water - Uninstalled 3.3.14+...installed 3.3.12...running this code...

#include <array.au3>
#include <Excel.au3>

Local $aArray[32000][34], $st = timerinit()

For $i = 0 To UBound($aArray) - 1
    For $j = 0 To UBound($aArray, 2) - 1
        $aArray[$i][$j] = StringFormat('%05i - %02i', $i, $j)
    Next
Next

ConsoleWrite('Time to populate array = ' & round(timerdiff($st)/1000,3) & ' seconds' & @CRLF)
$st = timerinit()

Local $oExcel = _Excel_Open()
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

$oBook = _Excel_BookNew($oExcel, 1)
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

_Excel_RangeWrite($oBook, Default, $aArray)
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

ConsoleWrite('Time to populate spreadsheet = ' & round(timerdiff($st)/1000,3) & ' seconds' & @CRLF)

with this result...

>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\ADMIN010\Documents\excel.au3" /UserParams    
+>05:44:04 Starting AutoIt3Wrapper v.15.729.1555.0 SciTE v.3.5.4.0   Keyboard:00000409  OS:WIN_7/Service Pack 1  CPU:X64 OS:X64    Environment(Language:0409)
+>         SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE   UserDir => C:\Users\ADMIN010\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\ADMIN010\AppData\Local\AutoIt v3\SciTE 
>Running AU3Check (3.3.12.0)  from:C:\Program Files (x86)\AutoIt3  input:C:\Users\ADMIN010\Documents\excel.au3
+>05:44:05 AU3Check ended.rc:0
>Running:(3.3.12.0):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\ADMIN010\Documents\excel.au3"    
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
Time to populate array = 15.803 seconds
0 - 0
0 - 0
0 - 0
Time to populate spreadsheet = 931.578 seconds
+>05:59:53 AutoIt3.exe ended.rc:0
+>05:59:53 AutoIt3Wrapper Finished.
>Exit code: 0    Time: 949

Note - I changed the open back to "visible" to check that the entire spreadsheet was written.  I was able to scroll to the bottom (row 31999) with no problem.

While running the screen does blank out several times and the excel window shows "...not responding..." occasionally.

Hope this helps,

kylomas

edit: my version of excel is 2002 SP3

Edited by kylomas
additional info

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites
water

Unfortunately transposing is needed because Excel treats the rows of the array as columns and the columns as rows.
Check this code where transposing has been omitted:

#include <Excel.au3>

Local $aArray[3][5] = [[10, 20, 30, 40, 50], [11, 21, 31, 41, 51], [12, 22, 32, 42, 52]]
Local $oExcel = _Excel_Open()
Local $oBook = _Excel_BookNew($oExcel, 1)
$oBook.Activesheet.Range("A1:C5").Value = $aArray

 

Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
water

I have learned it the hard way when rewriting the Excel UDF that there is a limit on the transpose method.
Unfortunately you do not find too much reliable information when searching MSDN or the web.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
water

I searched the web high and low and couldn't find any information about the transpose limit in Excel 2002.
Maybe the limit was already lifted to 65536 rows?
Could you please run the following test with 65536 and 65537 rows in the array?

#include <array.au3>
#include <Excel.au3>

Local $aArray[65536][2] ; <=== Change to 65537 for the second test!
Loca $st = timerinit()

For $i = 0 To UBound($aArray) - 1
    For $j = 0 To UBound($aArray, 2) - 1
        $aArray[$i][$j] = StringFormat('%05i - %02i', $i, $j)
    Next
Next

ConsoleWrite('Time to populate array = ' & round(timerdiff($st)/1000,3) & ' seconds' & @CRLF)
$st = timerinit()

Local $oExcel = _Excel_Open()
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

$oBook = _Excel_BookNew($oExcel, 1)
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

_Excel_RangeWrite($oBook, Default, $aArray)
ConsoleWrite(@error & ' - ' & @extended & @CRLF)

ConsoleWrite('Time to populate spreadsheet = ' & round(timerdiff($st)/1000,3) & ' seconds' & @CRLF)

 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
kylomas

Maybe in topic #6 you mean "rows", not "cells".

I will run your test when I get back by my pc...

Edited by kylomas

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites
water

For Excel 95, Excel 97 and Excel 2000 it is 5461 cells as described in the KB article I mentioned.
In Excel 2010 it is 65536 rows because it doesn't matter how many columns the array has I tested with.

For Excel 2002, 2003 and 2007 it is still undefined in my opinion. For Excel 2007 I somewhere read that it was 65536 cells, but this could be wrong.

As your script works with Excel 2002 and 34000 rows it might me that the limit was already lifted to 65536 rows with this Excel version. The tests with 65536 and 65537 rows with Excel 2002 should show how it works.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
kylomas

@water - Results from the two test runs...

Results from 1ST run...
>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\ADMIN010\Documents\excel test#1.au3" /UserParams    

+>18:31:20 Starting AutoIt3Wrapper v.15.729.1555.0 SciTE v.3.5.4.0   Keyboard:00000409  OS:WIN_7/Service Pack 1  CPU:X64 OS:X64    Environment(Language:0409)
+>         SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE   UserDir => C:\Users\ADMIN010\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\ADMIN010\AppData\Local\AutoIt v3\SciTE 

>Running AU3Check (3.3.14.1)  from:C:\Program Files (x86)\AutoIt3  input:C:\Users\ADMIN010\Documents\excel test#1.au3
+>18:31:21 AU3Check ended.rc:0
>Running:(3.3.14.1):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\ADMIN010\Documents\excel test#1.au3"    
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
Time to populate array = 1.274 seconds
0 - 1
0 - 0
0 - 0
Time to populate spreadsheet = 11.456 seconds
+>18:31:34 AutoIt3.exe ended.rc:0
+>18:31:34 AutoIt3Wrapper Finished.
>Exit code: 0    Time: 13.73



Results from 2ND run...

>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\ADMIN010\Documents\excel test#1.au3" /UserParams    

+>18:32:36 Starting AutoIt3Wrapper v.15.729.1555.0 SciTE v.3.5.4.0   Keyboard:00000409  OS:WIN_7/Service Pack 1  CPU:X64 OS:X64    Environment(Language:0409)
+>         SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE   UserDir => C:\Users\ADMIN010\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\ADMIN010\AppData\Local\AutoIt v3\SciTE 

>Running AU3Check (3.3.14.1)  from:C:\Program Files (x86)\AutoIt3  input:C:\Users\ADMIN010\Documents\excel test#1.au3
+>18:32:36 AU3Check ended.rc:0
>Running:(3.3.14.1):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\ADMIN010\Documents\excel test#1.au3"    
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
Time to populate array = 1.264 seconds
0 - 1
0 - 0
6 - 169
Time to populate spreadsheet = 0.34 seconds
+>18:32:38 AutoIt3.exe ended.rc:0
+>18:32:38 AutoIt3Wrapper Finished.
>Exit code: 0    Time: 2.647

 


Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites
water

That's great. So we now know that the 65536 rows limit was implemented with Excel 2002 :)
But it still doesn't explain, why the OPs script fails :(


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
water

@wiretwister

How do you populate your array? Do you query a database, Active Directory or some other systems which might return Null or cells with data longer 255 characters?


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
kylomas

 

That's great. So we now know that the 65536 rows limit was implemented with Excel 2002 :)
But it still doesn't explain, why the OPs script fails :(

Indeed, now we need to see the code that fails.  That was my point, albeit vague, in posting working code in topic #4. 


Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites
wiretwister

Please post your code here

Please post your code here

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • Skeletor
      By Skeletor
      Hi Guys,
      Can anyone point me in the right direction. I'm trying to accomplished conditional formatting with arrows, but the code I have is wrong... 
      .Range("=$A3:$A4000").FormatConditions.Add = (xlCellValue, xlGreater, "=$A:$A") .IconSet(xl3Arrows) ;ActiveWorkbook.iconsets I also tried it like this:
      .Range("=$A3:$A4000").FormatConditions _ .Add(xlCellValue, xlGreater, "=$A:$A") .IconSet(xl3Arrows) ;ActiveWorkbook.iconsets  
    • MrCheese
      By MrCheese
      hi all,
      reviewing the forum, this thread is applicable: 
       
       
      I wanted to know if there is now a better way to do this?
      In essence, I load a tab delimited txt file into an array (works well). I used tab, as some fields in the original csv contains commas.
      However, I needed autoit to manipulate this array, and output it as a csv.
      IF my array contains items with a comma, without double quotes around the field, then how best do I get a csv out of this?
      My current workaround is to filewritefromarray tab delimited, then open it in excel and save as a csv. I will need to check this to see how the address fields behave that contain a comma.
       
      Any thoughts would be appreciated.
       
    • Skeletor
      By Skeletor
      Hi Guys,
      How would you use _Excel_FilterSet to filter the excel sheet from largest number to smallest number?
      _Excel_FilterSet($oWorkbook, "Sheet1", "A2:I2", 1, ">20", 1, "<40") ; OR _Excel_FilterSet($oWorkbook, "Sheet1", "A2:I2", 1, ">", 1, "<") Excel Sheet attached. Trying to filter on the last column "I2"
      Inventory.xlsx
    • Skeletor
      By Skeletor
      Hi All,
      Has anyone come across this before?
      Code below:
      $SheetList = _Excel_SheetList($oWorkbook) _FileWriteFromArray("C:\" & $SheetListOutput, $SheetList, 1) Result:
      ResultABC| ResultDEF| ResultGHI| ResultJKL| ResultMNO| It created these "|" vertical bars?
    • Skeletor
      By Skeletor
      Hi All,

      I would like to know how you would take a FileLineRead and insert it into an array which then inserts it into Excel?
      One thing to know is the files content is broken up, so I only use half of the content within $FileRead1.
      So its imperative that the $value1, $value2, etc variables be used. 
      Code below:
      $FileRead1 = FileReadLine("C:\temp\sample.txt",1) For $count = 1 To _FileCountLines($FileRead1) Step 1 $string = FileReadLine($FileRead1, $count) $input = StringSplit($string, ",", 1) $value1 = $input[1] $value2 = $input[2] $value3 = $input[3] $value4 = $input[4] _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $value1, "A1") _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $value2, "B1") _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $value3, "C1") _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $value4, "D1") Next  
×