As the next step for my happily solved problem (Not understanding why WinHTTP does NOT authenticate certain HTTPS resource) I need to prettily parse obtained CSV. At the moment I use the following solution:
If HTTPReq.Status = 200 Then
If FSO.FileExists(CSV_Path) = True Then FSO.DeleteFile (CSV_Path)
Set FileStream = CreateObject("ADODB.Stream")
FileStream.Open
FileStream.Type = 1
FileStream.Write HTTPReq.responseBody
FileStream.SaveToFile (CSV_Path)
FileStream.Close
ActiveWorkbook.Connections("Redmine Timelog").Refresh
ActiveSheet.PivotTables("PivotTable_RM").PivotCache.Refresh
End If
That is, I save CSV to disk and then link it as data source to Excel. However, I'd like to have my Excel book self-sufficient, with no need to create additional files (for some quite obvious reasons).
The solution is pretty simple in my case: store WinHTTP.responseText line by line on the separate Excel sheet (instead of currently stored linked CSV) and then use Text to Data Excel conversion. However, I face the following immediate troubles:
- CSV is UTF-8 encoded, while raw WinHTTP response text seems to be NOT. Is there any way to interpret it using desired encoding?
- How to split CSV into lines? Use
Splitfunction or whatever else? CSV seems to use some of standard NewLine chars, and the data 99% should have NOT any of these.
There are many similar troubles solved, but I found nothing clear and acceptable for VBA so far, so any help will be appreciated. Thanks in advance!