在linux环境Excel转换成文本
在linux环境中将Excel转换成文本
背景介绍
在运维自动化过程中有这样的需求,有公司使用公共文档Excel维护信息,这些信息需要运维及时获取实现自动化任务,这些自动化任务以shell为例,shell不能直接操作Excel文档,需要将Excel转换成文本然后在解析和分析,我使用GO语言开发编译成二进制命令(之前的go编译文章可以参考 ),上传到服务器当命令使用。
操作演示
准备文档:
上传服务器操作转换:
服务器操作记录代码:
[root@localhost /]# ls
" boot dev etc jingge.xlsx lib64 media opt root sbin sys usr
bin catalina.jar empty home lib lvm mnt proc run srv tmp var
[root@localhost /]# exceltxt jingge.xlsx 第一页
======开始处理========
第一页
./jingge.txt
======完成处理========
[root@localhost /]# ls
" boot dev etc jingge.txt lib lvm mnt proc run srv tmp var
bin catalina.jar empty home jingge.xlsx lib64 media opt root sbin sys usr
[root@localhost /]# more jingge.txt
部门/公司 项目英文名称 主机IP 主机名称 所属应用 操作系统 告警团队简称 备注
公司 work_cem 10.152.116.11 cem-ck-01 问卷 linux work
公司2 work_cem 10.152.116.12 cem-ck-02 问卷 linux work
公司3 work_cem 10.152.116.13 cem-ck-03 问卷 linux work
公司4 work_cem 10.152.161.171 search-01 问卷 linux work
公司5 bdfb_law 10.152.161.172 search-02 法律信息 linux work
公司6 bdfb_law 10.152.161.173 search-03 法律信息 linux work
公司7 bdfb_law 10.152.161.174 search-04 法律信息 linux work
公司8 bdfb_law 10.152.161.175 search-05 法律信息 linux work
上GO代码
package main
import (
"bufio"
"fmt"
"os"
"strings"
"github.com/xuri/excelize/v2"
)
func main() {
//var str = os.Args
fmt.Println("======开始处理========")
//fmt.Printf("%T\n", str)
// var str0 = os.Args[0]
var excel_file_name = os.Args[1]
var excel_sheet_name = os.Args[2]
fmt.Println(excel_sheet_name)
file_name := strings.Split(excel_file_name, ".")[0]
f, err := excelize.OpenFile(excel_file_name) ///excel_file_name "b.xlsx"
if err != nil {
fmt.Println(err)
return
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
// 获取 Sheet 上所有单元格
rows, err := f.GetRows(excel_sheet_name) ///excel_sheet_name
if err != nil {
fmt.Println(err)
return
}
filePath := "./" file_name ".txt"
fmt.Println(filePath)
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666)
defer file.Close()
if err != nil {
fmt.Printf("open file err=%v\n", err)
return
}
writer := bufio.NewWriter(file)
for _, row := range rows {
str := ""
//fmt.Println(row)
for _, colCell := range row {
//fmt.Print(colCell, "\t")
str = str colCell "\t"
}
//fmt.Println(str)
//fmt.Println()
s := str "\r\n"
writer.WriteString(s)
}
writer.Flush()
fmt.Println("======完成处理========")
}
代码说明: 需要在GO二进制脚本命令上传入两个参数,第一个是Execl文件全称、第二个是sheet页名称
命令下载地址
exceltxt(将Excel转换成文本下载传送门)是Excel在Linux转换成文本的命令 下载地址是:https://download.csdn.net/download/qq_31555951/87371489,欢迎验证测试,提出意见。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbhcee
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01