Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLAM / XLSM / XLSX / XLTM / XLTX files. Supports reading and writing spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports complex components by high compatibility, and provided streaming API for generating or reading data from a worksheet with huge amounts of data. This library needs Go version 1.20 or later. There are some incompatible changes in the Go 1.21.0, the Excelize library can not working with that version normally, if you are using the Go 1.21.x, please upgrade to the Go 1.21.1 and later version. The full docs can be seen using go's built-in documentation tool, or online at go.dev and docs reference.
go get github.com/xuri/excelize
- If your packages are managed using Go Modules, please install with following command.
go get github.com/xuri/excelize/v2
Here is a minimal example usage that will create spreadsheet file.
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Create a new sheet.
index, err := f.NewSheet("Sheet2")
if err != nil {
fmt.Println(err)
return
}
// Set value of a cell.
f.SetCellValue("Sheet2", "A2", "Hello world.")
f.SetCellValue("Sheet1", "B2", 100)
// Set active sheet of the workbook.
f.SetActiveSheet(index)
// Save spreadsheet by the given path.
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
The following constitutes the bare to read a spreadsheet document.
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
// Close the spreadsheet.
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Get value from cell by given worksheet name and cell reference.
cell, err := f.GetCellValue("Sheet1", "B2")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(cell)
// Get all the rows in the Sheet1.
rows, err := f.GetRows("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
With Excelize chart generation and management is as easy as a few lines of code. You can build charts based on data in your worksheet or generate charts without any data in your worksheet at all.
package main
import (
"fmt"
"github.com/xuri/excelize/v2"
)
func main() {
f := excelize.NewFile()
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
for idx, row := range [][]interface{}{
{nil, "Apple", "Orange", "Pear"}, {"Small", 2, 3, 3},
{"Normal", 5, 2, 4}, {"Large", 6, 7, 8},
} {
cell, err := excelize.CoordinatesToCellName(1, idx+1)
if err != nil {
fmt.Println(err)
return
}
f.SetSheetRow("Sheet1", cell, &row)
}
if err := f.AddChart("Sheet1", "E1", &excelize.Chart{
Type: excelize.Col3DClustered,
Series: []excelize.ChartSeries{
{
Name: "Sheet1!$A$2",
Categories: "Sheet1!$B$1:$D$1",
Values: "Sheet1!$B$2:$D$2",
},
{
Name: "Sheet1!$A$3",
Categories: "Sheet1!$B$1:$D$1",
Values: "Sheet1!$B$3:$D$3",
},
{
Name: "Sheet1!$A$4",
Categories: "Sheet1!$B$1:$D$1",
Values: "Sheet1!$B$4:$D$4",
}},
Title: []excelize.RichTextRun{
{
Text: "Fruit 3D Clustered Column Chart",
},
},
}); err != nil {
fmt.Println(err)
return
}
// Save spreadsheet by the given path.
if err := f.SaveAs("Book1.xlsx"); err != nil {
fmt.Println(err)
}
}
package main
import (
"fmt"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
"github.com/xuri/excelize/v2"
)
func main() {
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
defer func() {
// Close the spreadsheet.
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// Insert a picture.
if err := f.AddPicture("Sheet1", "A2", "image.png", nil); err != nil {
fmt.Println(err)
}
// Insert a picture to worksheet with scaling.
if err := f.AddPicture("Sheet1", "D2", "image.jpg",
&excelize.GraphicOptions{ScaleX: 0.5, ScaleY: 0.5}); err != nil {
fmt.Println(err)
}
// Insert a picture offset in the cell with printing support.
enable, disable := true, false
if err := f.AddPicture("Sheet1", "H2", "image.gif",
&excelize.GraphicOptions{
PrintObject: &enable,
LockAspectRatio: false,
OffsetX: 15,
OffsetY: 10,
Locked: &disable,
}); err != nil {
fmt.Println(err)
}
// Save the spreadsheet with the origin path.
if err = f.Save(); err != nil {
fmt.Println(err)
}
}
Contributions are welcome! Open a pull request to fix a bug, or open an issue to discuss a new feature or change. XML is compliant with part 1 of the 5th edition of the ECMA-376 Standard for Office Open XML.
This program is under the terms of the BSD 3-Clause License. See https://opensource.org/licenses/BSD-3-Clause.
The Excel logo is a trademark of Microsoft Corporation. This artwork is an adaptation.
gopher.{ai,svg,png} was created by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license.
excelize's People
Forkers
xtaci nguyenducnhaty brydavis boicehuang benluo ariefdarmawan shotishu lamproae md2perpe danielromeroauk daerwang fhaoquan vimskk newlysoft aldidana whitten anhongyang125 quan-xie qizexi naysoftware taomin597715379 cjmxp q523591 enorzw hcxiong janisonllz xuxueyun mistshi shawngaocn zjmchn jardar carryon kokizzu zhouqingshan jfyne jhu-chang kwokhunglee bangnl mackyzhan roger2000hk pdkyll fadeojo hzmsrv devopsmi outprog joe2hpimn gumpyoung koalacxr itachi123456789 shengzhi q2000f itsky365 rainhan99 westwind027 ganillagrace wilesun lincoln007 qkbd slmint ocelotsloth guankai tum845 lotus-king flying0er chplain panex zanjs takayuki garenwen zakedy fhector 5432935 justintung jango2015 hanqian200705 word-go awesome-golang godeep joseph-hurtado jmptrader zerolugithub dxhbiz boniface hhy5277 jun-wen imjerrybao plandem fu100 scriptyt01 dao12dao happy-co zhoudaqing yungrun amanbolat lichaofei chenghuama yl10 awinlei leiyoujian avldyaexcelize's Issues
Border Setting
Setting border for selected cells is a practical requirement.
How to set font to Bold, Italic, etc?
I searched the docs and the code but didn't find anything to set the font style to bold, italic etc.
Removing available formatting after adding additional (for example color).
Hello. First of all I really grateful for your work.
Don't know bug or not, but I found some strange behavior of func SetCellStyle.
If I already have some formating, for example borders, and I try to add for example red color to cell, I loosing borders.
May be it is normal, but in this way it would be useful to have func like AddCellStyle or something similar.
Feature request: Auto filter
Hi Luxurioust,
first of all, AWESOME library. Got it up and running in no time thanks through the great documentation.
You know what would make excelize even better? Having a way to enable auto filter. I've searched around and it should be possible. See http://xlsxwriter.readthedocs.io/working_with_autofilters.html
I dug around a bit in the python source code and most of the logic is defined here https://github.com/jmcnamara/XlsxWriter/blob/master/xlsxwriter/worksheet.py#L1472 (however I don't understand a whole lot of it... ) Hopefully you do
I'm not an advanced enough go developer to create a good PR, but would be very grateful if you could add this feature to excelize.
Inserted Picture Print Supporting
Feature request - access workbook `definedNames `
Great library!
One feature that would be nice, is the ability to extract the named ranges, or definedNames
from an xlsx workbook or - xl\workbook.xml
from the zip archive.
They are defined like this:
<definedNames>
<definedName name="named_range_test1">Sheet1!$A$2:$C$40</definedName>
<definedName name="named_range_test2">Sheet2!$G$2:$G$5</definedName>
</definedNames>
I use this to guide extraction of data from an excel sheet, rather than having ranges or references defined in the code - it is extracted from the workbook itself to guide parsing of cell values.
This is the openpyxl documentation of the feature for reference.
I am just learning go or would try making a pull request... am happy to help with testing though!
Thanks! 😃
Text box supporting
Suggest to add function "AddTextBox()" like "AddPicture()"
Adding picture to a sheet with existing pictures
When I open an existing xlsx file and try to add a picture to a sheet which already has some pictures in it, existing pictures will be corrupted or removed and the picture I'm trying to add is not added to the sheet.
My code:
func main() {
xlsx, err := excelize.OpenFile("./tmp.xlsx")
if err != nil {
log.Println(err)
}
if err = xlsx.AddPicture("Sheet1", "E5", "./test.jpg", `{"x_scale": 1, "y_scale": 1}`); err != nil {
log.Println(err)
}
err = xlsx.WriteTo("./Workbook.xlsx")
if err != nil {
log.Println(err)
os.Exit(1)
}
}
Base xlsx file:
tmp.xlsx
After adding the picture:
Workbook.xlsx
Setting Value Efficiency
When setting value repeatedly with many cols, it runs very slow!
col := "A"
for i := 0; ; i++ {
col += "A"
xlsx.SetCellStr("Sheet1", col+"1", "a")
fmt.Println("set value")
}
Memory usage on large XLSXs goes way too high
As well as in tealeg/xlsx#186, this library suffers from memory eating while trying to parse large files.
For example I have 7mb file (~60k rows with ~40 columns for each row) which parsed with tealeg/xlsx into 700mb of RAM, while this library eats almost whole gigabyte.
Any plans to provide an iterator which will be memory-friendly?
Copy sheets between xlsx files
Feature request
Please add support for Sheet move/copy between different xlsx files
Thanks in advance
runtime error SIGSEGV on 8fbab474
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4d96f7]
goroutine 1 [running]:
github.com/Luxurioust/excelize.(*File).formattedValue(0xc4200504b0, 0x1, 0xc4200f9982, 0x6, 0x0, 0x0)
/home/dlin/go/src/github.com/Luxurioust/excelize/cell.go:69 +0x177
github.com/Luxurioust/excelize.(*xlsxC).getValueFrom(0xc4200edd70, 0xc4200504b0, 0xc420050820, 0xc4201148d0, 0x1, 0x0, 0x2)
/home/dlin/go/src/github.com/Luxurioust/excelize/rows.go:144 +0x15b
github.com/Luxurioust/excelize.(*File).GetRows(0xc4200504b0, 0xc4200edea0, 0x6, 0xc42001159c, 0x1, 0xc4200edea0)
/home/dlin/go/src/github.com/Luxurioust/excelize/rows.go:60 +0x9e8
main.updateSheet(0xc4200504b0, 0x531640, 0x3)
/home/dlin/tmp/bug/bug.go:28 +0xd2
main.main()
/home/dlin/tmp/bug/bug.go:15 +0x6f
package main
import (
"fmt"
"log"
"strconv"
"github.com/Luxurioust/excelize" // bug: Date format, can't insert value
)
func main() {
log.SetFlags(log.Lshortfile)
xl, err := excelize.OpenFile("t.xlsx")
updateSheet(xl, "Fut")
err = xl.Save()
if err != nil {
log.Fatalln(err)
}
}
func updateSheet(xl *excelize.File, sheetName string) {
idxSheet := xl.GetSheetIndex(sheetName)
if idxSheet == 0 {
log.Fatalln("Can't found correct sheetName:", sheetName)
}
rows := xl.GetRows("sheet" + strconv.Itoa(idxSheet))
fmt.Println(rows)
}
func GetColStr(x int) string {
colName := ""
//oldX := x
for x > 0 {
digit := (x - 1) % 26
colName = string(int('A')+digit) + colName
x = (x - 1 - digit) / 26
}
//log.Println(oldX, colName)
return colName
}
How to save text without losing formatting? Possibly enhancement.
Hi hope all is well. Great work that i'm benefiting from so thanks very much.
With .SetCellValue(), .SetCellStr(), and .SetCellInt(), they make decisions about the alignment of the result, which is not bad per se. I know i can use .SetCellStyle() afterwards. But it would be very handy to have a function that respects the existing style. I wish to be able to set all the styles i need within an Excel file as a kind of report template, outside of Go, then use Go to populate it, and not even need to know what the styles are within my Go code. For example a column that is already center-aligned, would be great if a function that can keep it center-aligned, or whatever the style might be, including font, color, date formatting, currency etc.
Something like a .SetCellValueWithStyleRetention(). Or is there already a way to achieve this with the existing functions?
Graphs
How can I "create" and "update" graphs in an xlsx files?
Read nothing from the sample?
package main
import (
"fmt"
"github.com/Luxurioust/excelize"
)
func main() {
xlsx, err := excelize.OpenFile("/home/Workbook.xlsx")
if err != nil {
fmt.Println(err)
}
cell := xlsx.GetCellValue("Sheet2", "D11")
fmt.Println(cell)
}
Use builtin `map` instead of home-built
As I understand it, the order of FileList
elements in the slice is not of importance. Therefore, instead of a slice of the struct FileList
(containing Key
and Value
), you could use a map[string] string
.
https://gobyexample.com/maps
https://blog.golang.org/go-maps-in-action
Loosing of auto formatting rules after using UpdateLinkedValues
Hello. First of all I really grateful for your work.
Found some strange behaviour of func UpdateLinkedValue.
I have two sheets - first with real data and second with linked data from first one.
On the second sheet with linked data I use auto formatting rules. In my situation it is adding background color to cell depends on percentage, for example red background if 90% and more.
If I don't using UpdateLinkedValues I don't loose auto formatting, but linked data doesn't update.
If I using UpdateLinkedValues I loose auto formatting, but linked data updates.
Delete sheet from workbook
Hi,
Is it possible to implement new function which can delete/remove particular sheet?
How to get a picture in a cell ?
I need import some data to mongodb and the row data have a picture need to save another path ! I don't want to upload excel and pictures two times, so how do I get a picture from the cell ? Here are my previous snippets and related links(https://github.com/tealeg/xlsx/issues/49), but there's no real solution,that made me a little anxious ! Thanks a lot !
好像是不支持图片的插入 (Add some pictures into the xlsx file)
只有整形和字符串的插入没有图片的插入功能
Pivot support
Can you please add feature:
support for pivot data source edit/change
Right now I make copy of pivot, but copy make reference to the data source, so I still required to make changes in pivot data source manually
Also it will be great to create pivot from the code, without excel application :)
Thanks in advance
Question: How to get all cells & rows?
As the title says, how to get all rows and their cells? I don't know beforehand how many rows or cells there'll be.
Merge with tealeg/xlsx ?
Feel free to delete if off-topic.
I see two reasonably popular XLSX go packages, this and tealeg/xlsx. Is it worth trying to merge to one unified effort?
Cannot set name to sheets
Hi! I want to use custom names for my sheets. But I can't because it need to name "Sheet" + index.
It's critical bug, I think.
https://github.com/Luxurioust/excelize/blob/master/cell.go#L14
https://github.com/Luxurioust/excelize/blob/master/sheet.go#L22
https://github.com/Luxurioust/excelize/blob/master/sheet.go#L35
Roadmap
Thank you for your library! Great work! 👍
Do you have a roadmap for future development?
Adding Excel data validation to type xlsxWorksheet
Added data validation types in attached xlsxWorksheet.go.
With this change cell data validations are preserved when calling OpenFile("excel.xlsx") and then WriteTo("excel.xlsx").
Thanks!
Can support xls?
macOS can not use
cell := xlsx.GetCellValue("Sheet1", "B2")
fmt.Println(cell)
// Get all the rows in a sheet.
rows := xlsx.GetRows("sheet1")
fmt.Println(rows)
in windows it works normal,but in macOS rows is empty,cell can get value
Leading space(s) are missing
Hi,
When I create workbook and do some entries to the cells I noticed that if there are some leading spaces in front of the text, they are missing.
In case if I open the workbook with excel and enter some text with leading spaces they are corretly entered to the cell.
Complex border setting
README shows using tildas in file paths
Go won't handle those like shell expansion would, it would be cleaner just use to "Workbook.xlsx" instead of "~/Workbook.xlsx"
Read file row by row
Is there any way to read excel by rows, like in tealeg's case:
for _, row = range sheet.Rows
in case I don't know how many rows are there?
The GetRows function can`t work ! Rules have changed?
In lastest version the GetRows function can`t work ! To call xlsx.GetRows("sheet1") function get a string array but length with 0. Rules have changed ?
GetRows() does not work on 1.8.1
% go version
go version go1.8.1 linux/amd64
Code:
package main
import (
"fmt"
"log"
"github.com/Luxurioust/excelize"
)
func main() {
xlsx, err1 := excelize.OpenFile("/tmp/1.xlsx")
if err1 != nil {
log.Fatal("Failed to open XLSX file: " + err1.Error())
}
// We will always use first sheet.
sheet_name := xlsx.GetSheetName(1)
log.Println("Will use sheet: '" + sheet_name + "'")
// Read file data.
//file_data := make(map[string]string)
rows := xlsx.GetRows(sheet_name)
for _, row := range rows {
fmt.Println(row)
}
}
Write to file as stream row by row?
Hi,
would it be possible to have something like stream-writing to a file in case of lots of rows? Like hitting the excel sheet row limit?
I'm not so familiar with GoLang's IO, but maybe there is no problem to achieve this?
For example I have millions of rows to put in excel sheets, and it is obviously memory heavy task. The idea is to read slice of rows from data source, like 100,000 at the time, then write them to the excel file in a loop until all rows was written. In such case there would be produced either excel file with few sheets or few excel files.
The primary idea is to handle memory consumption to reasonable amounts of RAM, like few gigabytes not tens..
What's Your opinion?
Object-oriented style
When I saw the example code, my direct reaction was that it should be in an object-oriented style:
package main
import (
"fmt"
"github.com/Luxurioust/excelize"
)
func main() {
xlsx := excelize.CreateFile()
sheet2 := xlsx.NewSheet(2, "Sheet2")
sheet3 := xlsx.NewSheet(3, "Sheet3")
sheet2.SetCellInt("A23", 10)
sheet3.SetCellStr("B20", "Hello")
err := xlsx.Save("~/Workbook.xlsx")
if err != nil {
fmt.Println(err)
}
}
Can't get multiple records
By passing this test data
data.xlsx
The myread.go
package main
/*
Build: go build -o myread myread.go
run: ./my_read data.xlsx
*/
import (
"fmt"
"log"
"os"
"github.com/Luxurioust/excelize"
)
func main() {
inF, err := excelize.OpenFile(os.Args[1])
if err != nil {
log.Fatalln(err)
}
sheet := inF.GetRows(inF.GetSheetName(1))
for _, row := range sheet {
fmt.Println(len(row), row)
}
}
expect get:
3 [日盤 12345 夜盤交易行情轉入]
3 [測 12346 行情轉入]
but get:
3 [測 12346 行情轉入]
3 [測 12346 行情轉入]
Can't display data cell in correct way
For example,
tealeg/xlsx display the same cell as: &{ 42740 0xc420424640 mm-dd-yy false false 0 0 2}
throught it's .String() will convert to '01-05-17'
Luxurioust/excelize: just display as 42740 (already converted to string)
duplicate sheets
Capability to duplicate a sheet, like PowerShell/excel's $wb.sheets.item(1).copy($wb.sheets.item(2)). Perhaps something like:
// sheet at index 1 already exists...
xlsx.NewSheet(2, "sheet2")
xlsx.CopySheet(1, 2)
Copied code
Hey,
I just came across your project and noticed there is a lot of copied code from tealeg/xlsx
without attribution. Especially xmlSharedStrings.go
which is a direct copy paste of tealeg/xlsx
xmlSharedStrings.go
, comments and all.
It's nice to see more xlsx action in the Golang world, but have you considered just contributing to tealeg/xlsx
instead?
rows.go : getTotalRowsCols: ignoring error returned by xml.Token()
when calling .Token()
function of type *xml.Decoder
, error returned is ignored when it should be handled.
line: token, err := decoder.Token()
inside function getTotalRowsCols()
Example does not work
Hi. Example does not work. Library created bad xlsx file (in attach).
xlsx := excelize.CreateFile()
xlsx.NewSheet(2, "Sheet2")
xlsx.SetCellValue("Sheet2", "A2", "Hello world.")
xlsx.SetCellValue("Sheet1", "B2", 100)
xlsx.SetActiveSheet(2)
err = xlsx.WriteTo("Workbook.xlsx")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
Workbook.xlsx
GetRows returns empty list for non-empty sheet
Thanks for this project!
xls, err := excelize.OpenFile("data/test2.xlsx")
log.Println(xls.GetRows("Sheet1"))
Gets me an empty list while the file is not empty
Newsheet is empty SetCellValue?
$ go version
go version go1.8.1 windows/amd64
Code:
package main
import (
"fmt"
"os"
"github.com/Luxurioust/excelize"
)
func main() {
xlsx := excelize.CreateFile()
// Create a new sheet.
xlsx.NewSheet(2, "List")
// xlsx.DeleteSheet("Sheet1")
// Set value of a cell.
xlsx.SetCellValue("List", "A1", 100)
xlsx.SetCellValue("List", "B1", 30)
xlsx.SetCellFormula("List", "C1", "=A1+A2")
// Set active sheet of the workbook.
xlsx.SetActiveSheet(2)
// Save xlsx file by the given path.
err := xlsx.WriteTo("./dummy.xlsx")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}
I changing "Create XLSX file Example"
But Cell is Empty...
I Tested MS Office2007
Not Working "Reading XLSX file sample"
Workbook.xlsx
I attached my test file.
I made that file and run homepage's "Reading XLSX file sample" code
I expected :
test text
1 2 ...
But i got :
1 2 ...
But when I input some values to "A?" of "Sheet1" I got the expected result.
I think cell.go's line 26
if rows <= xAxis {
return ""
}
return an empty string.
SetCellValue to a Go Time type causes saving of .xlsx file to degrade dramatically.
I have set the cells (approx. 300) as text i.e. "05-29-17" and the .xlsx file, it saves in seconds... When I set the cells to a Go Time type and save the .xlsx file, it takes almost a minute! -- Anyhow, it's a Great package! Thanks for sharing!
Can not extract Chinese data correctly
There should be three columns in the output, first and third column are Chinese characters.
package main
import (
"fmt"
"log"
"github.com/Luxurioust/excelize"
)
func main() {
inF, err := excelize.OpenFile("data.xlsx")
if err != nil {
log.Fatalln(err)
}
sheet := inF.GetRows(inF.GetSheetName(1))
for _, row := range sheet {
fmt.Println(len(row), row)
}
}
Can't save Go's time variable to cell
xl.SetCellValue("Sheet1","A1", time.Now())
The excel file will show empty
Sheet name issue
Hi,
If I open a xlsx file and want to write to some cells in sheet where sheet name is not in format of "SheetX"
after xlsx file is saved, there is no entry in the cell if you open a file with Excel.
Another thing is if I use xlsx.CreateFile() I'm aware that I get only one sheet with name "Sheet1" and I can write to the cells of "Sheet1".
When I do xlsx.NewSheet(2, "Sheet2") I can write to cells in "Sheet2". But if instead od "Sheet2" I put "Test_1" for example, then if I write to some cells in this sheet, this cannot be seen in Excel.
Only workaround I found is to create new sheets with name "SheetX" then do whatever you need and before saving use xslx.SetSheetName("Sheet2", "Test_1") for example.
Inserted Picture Shows Error
When read a xlsx file with complex border , Inserted picture shows error.
Workbook.xlsx
func main() {
xlsx, _ := excelize.OpenFile("./Workbook.xlsx")
err := xlsx.AddPicture("Sheet1", "A2", "./1.jpg", `{"x_offset": 15, "y_offset": 10, "print_obj": true, "lock_aspect_ratio": false, "locked": false}`)
if err != nil {
fmt.Println(err)
}
err = xlsx.WriteTo("./Workbook1.xlsx")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.