Skip to content

Read numeric cell precision issues #1523

@ahKevinXy

Description

@ahKevinXy

Description
excel 读取的身份证号码的时候

excel 里面显示 正常

package main

import (
	"fmt"
	"github.com/xuri/excelize/v2"

	"time"
)

func main() {
	fileName := "1.xlsx"

	fmt.Println(fileName)

	fmt.Println(time.Now())
	files, err := excelize.OpenFile(fileName)
	if err != nil {
		return
	}
	name1 := files.GetSheetName(0)
	name2 := files.GetSheetName(1)
	name3 := files.GetSheetName(2)

	fmt.Println(name3, name2, name1, "这是一个名称")
	rows, err := files.GetRows("Sheet1")
	fmt.Println(err)
	for _, v := range rows {
		if v[0] == "李三" {
			fmt.Println(v[1])
		}
		if v[0] == "李四" {
			fmt.Println(v[1])
		}

	}
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(err, "错误信息")
		}
	}()

}

Steps to reproduce the issue:

  1. 读取身份证号码的excel
  2. 随机性出现 精度失真 末尾出现0的现象
  3. excel 身份证号码是没有问题的

Describe the results you received:
读取 string的row 的cell 时候按理 不会出现 失真现象

Describe the results you expected:
出现了 尾数为 0000

Output of go version:
go version go1.18.3 darwin/amd64

8606114100

image

Excelize version or commit ID:

github.com/xuri/excelize/v2 v2.7.1

Environment details (OS, Microsoft Excel™ version, physical, etc.):

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmedThis issue can be reproduced

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions