libxlsxwriter.dll - A C library for creating Excel XLSX files

Discuss other useful utilities, general computing tips & tricks, Internet resources, etc.
tmplinshi
Posts: 1604
Joined: 01 Oct 2013, 14:57

libxlsxwriter.dll - A C library for creating Excel XLSX files

30 Jul 2016, 02:16

https://github.com/jmcnamara/libxlsxwriter

Example code:

Code: Select all

; libxlsxwriter     -- https://github.com/jmcnamara/libxlsxwriter
; libxlsxwriter.dll -- http://www.rapideuphoria.com/libxlsxwriter.zip

#NoEnv
SetWorkingDir %A_ScriptDir%
SetBatchLines, -1

__load_dll("libxlsxwriter.dll")

workbook := workbook_new("demo.xlsx")
worksheet := workbook_add_worksheet(workbook, "")

format := workbook_add_format(workbook)
format_set_bold(format)
format_set_bg_color(format, 0x00ff00)

worksheet_write_string(worksheet, 0, 0, "Hello", 0)
worksheet_write_string(worksheet, 1, 0, "World", format)

worksheet_write_number(worksheet, 2, 0, 123,     0)
worksheet_write_number(worksheet, 3, 0, 123.456, 0)

workbook_close(workbook)
return

__load_dll(filename) {
	DllCall("LoadLibrary", "Str", filename, "Ptr")
}

workbook_new(filename) {
	static _filename
	StrPutVar(filename, _filename, "utf-8")
	return DllCall("libxlsxwriter\new_workbook", "str", _filename, "cdecl ptr")
}

new_workbook(filename) {
	static _filename
	StrPutVar(filename, _filename, "utf-8")
	return DllCall("libxlsxwriter\new_workbook", "str", _filename, "cdecl ptr")
}

workbook_add_worksheet(workbook, sheetname) {
	StrPutVar(sheetname, _sheetname, "utf-8")
	return DllCall("libxlsxwriter\workbook_add_worksheet"
		, "ptr", workbook
		, "ptr", (sheetname="") ? 0 : &_sheetname
		, "cdecl ptr")
}

workbook_add_format(workbook) {
	return DllCall("libxlsxwriter\workbook_add_format", "ptr", workbook, "cdecl ptr")
}

format_set_bold(format) {
	return DllCall("libxlsxwriter\format_set_bold", "ptr", format, "cdecl")
}

format_set_bg_color(format, color) {
	DllCall("libxlsxwriter\format_set_bg_color", "ptr", format, "int", color, "cdecl")
}

worksheet_set_column(worksheet, first_col, last_col, width, format) {
	return DllCall("libxlsxwriter\worksheet_set_column"
		, "ptr", worksheet
		, "ushort", first_col
		, "ushort", last_col
		, "double", width
		, "ptr", format
		, "cdecl")
}

worksheet_write_string(worksheet, row, col, string, format) {
	StrPutVar(string, _string, "utf-8")
	return DllCall("libxlsxwriter\worksheet_write_string"
		, "ptr", worksheet
		, "uint", row
		, "ushort", col
		, "ptr", &_string
		, "ptr", format
		, "cdecl")
}

worksheet_write_number(worksheet, row, col, number, format) {
	return DllCall("libxlsxwriter\worksheet_write_number"
		, "ptr", worksheet
		, "uint", row
		, "ushort", col
		, "double", number
		, "ptr", format
		, "cdecl")
}

workbook_close(workbook) {
	return DllCall("libxlsxwriter\workbook_close", "ptr", workbook, "cdecl")
}

; From /docs/commands/StrPutGet.htm
StrPutVar(string, ByRef var, encoding)
{
	; Ensure capacity.
	VarSetCapacity( var, StrPut(string, encoding)
		; StrPut returns char count, but VarSetCapacity needs bytes.
		* ((encoding="utf-16"||encoding="cp1200") ? 2 : 1) )
	; Copy or convert the string.
	return StrPut(string, &var, encoding)
}
Download: libxlsxwriter-demo.7z
(Note: This dll was found from http://www.rapideuphoria.com/libxlsxwriter.zip, it may not the latest version.)
User avatar
Blackholyman
Posts: 1293
Joined: 29 Sep 2013, 22:57
Location: Denmark
Contact:

Re: libxlsxwriter.dll - A C library for creating Excel XLSX files

30 Jul 2016, 06:43

Nice that can really come in handy
Also check out:
Courses on AutoHotkey

My Autohotkey Blog
:dance:
GS SAHU
Posts: 37
Joined: 29 Sep 2014, 12:18

Re: libxlsxwriter.dll - A C library for creating Excel XLSX files

10 Aug 2016, 07:47

HOW TO CONTROL PAGE SETUP , PRINTING AND CELL BORDER ?
tmplinshi
Posts: 1604
Joined: 01 Oct 2013, 14:57

Re: libxlsxwriter.dll - A C library for creating Excel XLSX files

11 Aug 2016, 11:02

GS SAHU wrote:HOW TO CONTROL PAGE SETUP , PRINTING AND CELL BORDER ?
I don't know what exactly page setup you looking for, but there are some "page" related functions, see this documentation: http://libxlsxwriter.github.io/worksheet_8h.html

For "PRINTING", here is an example:

Code: Select all

workbook := workbook_new("demo.xlsx")
... ...
worksheet_print_area(worksheet, 2, 0, 3, 0)
workbook_close(workbook)
Run, print "demo.xlsx"
There are many PRINT related functions, see docs: http://libxlsxwriter.github.io/worksheet_8h.html

For "CELL BORDER", you can use format_set_border and some other fuctions, see docs: http://libxlsxwriter.github.io/format_8h.html
Virgilio
Posts: 1
Joined: 26 Jan 2017, 11:12

Re: libxlsxwriter.dll - A C library for creating Excel XLSX files

26 Jan 2017, 11:20

I use Autoit.

I would use the dll but am not able to write the calls to functions contained.

Would you give me a hand?

Thank you.
tmplinshi
Posts: 1604
Joined: 01 Oct 2013, 14:57

Re: libxlsxwriter.dll - A C library for creating Excel XLSX files

26 Jan 2017, 13:32

Virgilio wrote:I use Autoit.

I would use the dll but am not able to write the calls to functions contained.

Would you give me a hand?

Thank you.
Sorry, I don't know Autoit. You would get better help from the Autoit forum.

Return to “Other Utilities & Resources”

Who is online

Users browsing this forum: No registered users and 21 guests