webxcel
🤔 A REST backend built with plain VBA Microsoft Excel macros. Yes. Macros. (by michaelneu)
Windows-classic-samples
This repo contains samples that demonstrate the API used in Windows classic desktop applications. (by microsoft)
webxcel | Windows-classic-samples | |
---|---|---|
4 | 15 | |
415 | 4,826 | |
- | 0.8% | |
0.0 | 3.2 | |
over 4 years ago | 9 days ago | |
Visual Basic | ||
MIT License | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
webxcel
Posts with mentions or reviews of webxcel.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-09-28.
-
I HATE EXCEL I HATE EXCEL I HATE EXCEL I HATE EXCEL I HATE EXCEL
Not only can excel be a database, but it can also be an web server with API to access the spreadsheets as a database. Take a look at WebExcel
-
When Excel isn't just a database, but THE database
See webxcel, an excel macro that turns your workbook into a backend "database" with a rest api. It is an entire http server running in excel serving the worksheets. It even supports fastapi for using php pages.
-
Error using OCX “Class not registered” [VBA PowerPoint]
Option Explicit ' bits and pieces from: https://github.com/michaelneu/webxcel/blob/master/src/Modules/wsock32.bas ' and https://github.com/michaelneu/webxcel/blob/master/src/Classes/TcpClient.cls Public Const WSADESCRIPTION_LEN = 256 Public Const WSASYS_STATUS_LEN = 128 Public Const WSADESCRIPTION_LEN_ARRAY = WSADESCRIPTION_LEN + 1 Public Const WSASYS_STATUS_LEN_ARRAY = WSASYS_STATUS_LEN + 1 Public Type WSADATA wVersion As Integer wHighVersion As Integer szDescription As String * WSADESCRIPTION_LEN_ARRAY szSystemStatus As String * WSASYS_STATUS_LEN_ARRAY iMaxSockets As Integer iMaxUdpDg As Integer lpVendorInfo As String End Type Public Const AF_INET = 2 Public Const SOCK_STREAM = 1 Public Const INADDR_ANY = 0 Public Type IN_ADDR s_addr As Long End Type Public Type sockaddr_in sin_family As Integer sin_port As Integer sin_addr As IN_ADDR sin_zero As String * 8 End Type Public Const FD_SETSIZE = 64 Public Type fd_set fd_count As Integer fd_array(FD_SETSIZE) As Long End Type Public Type timeval tv_sec As Long tv_usec As Long End Type Public Type sockaddr sa_family As Integer sa_data As String * 14 End Type Public Const INVALID_SOCKET = -1 Public Const SOL_SOCKET = 65535 Public Const SO_RCVTIMEO = &H1006 Public Declare PtrSafe Function WSAStartup Lib "wsock32.dll" (ByVal versionRequired As Long, wsa As WSADATA) As Long Public Declare PtrSafe Function WSAGetLastError Lib "wsock32.dll" () As Long Public Declare PtrSafe Function WSACleanup Lib "wsock32.dll" () As Long Public Declare PtrSafe Function socket Lib "wsock32.dll" (ByVal addressFamily As Long, ByVal socketType As Long, ByVal protocol As Long) As Long Public Declare PtrSafe Function connect Lib "wsock32.dll" (ByVal s As Long, ByRef address As sockaddr_in, ByVal namelen As Long) As Long Public Declare PtrSafe Function htons Lib "wsock32.dll" (ByVal hostshort As Long) As Integer Public Declare PtrSafe Function bind Lib "wsock32.dll" (ByVal socket As Long, name As sockaddr_in, ByVal nameLength As Integer) As Long Public Declare PtrSafe Function listen Lib "wsock32.dll" (ByVal socket As Long, ByVal backlog As Integer) As Long Public Declare PtrSafe Function select_ Lib "wsock32.dll" Alias "select" (ByVal nfds As Integer, readfds As fd_set, writefds As fd_set, exceptfds As fd_set, timeout As timeval) As Integer Public Declare PtrSafe Function accept Lib "wsock32.dll" (ByVal socket As Long, clientAddress As sockaddr, clientAddressLength As Integer) As Long Public Declare PtrSafe Function setsockopt Lib "wsock32.dll" (ByVal socket As Long, ByVal level As Long, ByVal optname As Long, ByRef optval As Long, ByVal optlen As Integer) As Long Public Declare PtrSafe Function send Lib "wsock32.dll" (ByVal socket As Long, buffer As String, ByVal bufferLength As Long, ByVal flags As Long) As Long Public Declare PtrSafe Function recv Lib "wsock32.dll" (ByVal socket As Long, ByVal buffer As String, ByVal bufferLength As Long, ByVal flags As Long) As Long Public Declare PtrSafe Function inet_addr Lib "wsock32.dll" (ByVal hostname As String) As Long Public Declare PtrSafe Function closesocket Lib "wsock32.dll" (ByVal s As Long) As Long Sub Client() ' initialize winsock (WSAStartup) Dim wVersionRequested As Long wVersionRequested = &H202 ' try for version 2.2 Dim WinsockData As WSADATA, WinsockResult As Long WinsockResult = WSAStartup(&H101, WinsockData) If WinsockResult <> 0 Then ' error MsgBox "WSAStartup Error: " & WinsockResult Exit Sub End If Dim host As String, port As Long, m_clientSocket As Long host = "192.168.1.1" ' local router, commonly port = 80 Dim IPaddress As sockaddr_in IPaddress.sin_addr.s_addr = inet_addr(host) IPaddress.sin_family = AF_INET IPaddress.sin_port = htons(port) m_clientSocket = socket(AF_INET, SOCK_STREAM, 0) Dim connectResult As Long connectResult = connect(m_clientSocket, IPaddress, 16) If connectResult = -1 Then ' error MsgBox "Connect Error" WinsockResult = WSACleanup() Exit Sub End If Dim message As String message = "GET / HTTP/1.1" WinsockResult = send(m_clientSocket, ByVal message, Len(message), 0) Dim buffer As String, x As Long message = "" Do buffer = Trim(ReceiveBytes(m_clientSocket, 1024)) If Len(buffer) > 0 Then message = message & buffer End If Loop While Len(buffer) > 0 MsgBox "Reply: " & Trim(message) ' clean up WinsockResult = WSACleanup() If WinsockResult <> 0 Then ' error MsgBox "Cleanup Error: " & WinsockResult End If End Sub Public Function ReceiveBytes(ByVal a_clientSocket As Long, ByVal bytes As Long) As String Dim buffer As String, i As Long buffer = "" For i = 0 To bytes - 1 buffer = buffer & Chr(0) Next Dim readBytes As Long readBytes = recv(a_clientSocket, buffer, bytes, 0) If readBytes <> -1 Then ReceiveBytes = Left(buffer, readBytes) End If End Function
-
Host http server in vba
Have you seen this? https://github.com/michaelneu/webxcel
Windows-classic-samples
Posts with mentions or reviews of Windows-classic-samples.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-10-10.
-
My question is why do you need to convert PowerShell to exe?
https://github.com/microsoft/Windows-classic-samples/tree/main/Samples Somewhere here I saw such a crutch.
-
Anyone else remember AMCAP, the old video capturing app on Windows?
Actually, the program was developed by Microsoft as a "sample" for their DirectShow API. The source code can be found on Microsoft's GitHub account.
-
I would like my son on the other coast to be able to navigate my TV show collection like I do on my home PC with Windows Explorer. Is that feasible? What's the best way to do that? TIA!
MS advises against .NET shell extensions, but I think it's possible. There's a C++ example in the SDK here.
- Building Client Socket With C++ To Add ICMP
-
what windows features that have no equivalent in linux?
https://docs.microsoft.com/en-us/windows/win32/vss/writers https://github.com/microsoft/Windows-classic-samples/tree/main/Samples/VolumeShadowCopyServiceWriter
-
Going outside the command line
It depends on your OS. If you're using Windows, you ask Windows to make you a window (using the Win32 API), then tell it which pixels to draw inside of it. Here's some example code.
-
A source to learn winsocket from A to Z?
On the second half of the page under the heading "Advanced Winsock Samples", there's a GitHub link containing different Winsock samples including IOCP (I/O Completion Ports), async sockets, and polling. Five of these samples are also listed on the MSDN page, in order from most to least performant when handling multiple sockets.
-
Fractional scaling on Wayland.... kinda sucks NGL.
Windows Hi-DPI API actually sends the DPI to the application. So application can draw itself as sharp as it can: https://github.com/microsoft/Windows-classic-samples/blob/master/Samples/DPIAwarenessPerWindow/client/DpiAwarenessContext.cpp#L332 .
-
How non-ending programs look like?
Here's an example of a Windows program that works in this fashion and just prints some text to the screen: https://github.com/microsoft/Windows-classic-samples/blob/master/Samples/Win7Samples/begin/LearnWin32/HelloWorld/cpp/main.cpp
-
Error using OCX “Class not registered” [VBA PowerPoint]
I found some example code to clear up my confusion at: https://github.com/microsoft/Windows-classic-samples/blob/master/Samples/WinhttpWebsocket/cpp/WinhttpWebsocket.cpp
What are some alternatives?
When comparing webxcel and Windows-classic-samples you can also consider the following projects:
vba-websocket - VBA Websocket Sample (Echo Server Client)