PS : 用到spire库,.net控制台应用程序

其实本来没打算写这个工具的,只是最近需要用到,手头上正好没有这样的工具,那么怎么办,写呗!

其实说白了就是省事,策划想怎么玩,把表把工具丢给他,省得策划两分钟来拍一次你的后背,哈哈哈!

下面附上代码,注释得很清楚,我挑需要注意的说一下就好...

  1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6 using System.IO;
7 using Spire.Xls;
8 using Spire.Xls.Collections;
9
10 namespace ExcelTools
11 {
12 class Program
13 {
14 /// <summary>
15 /// 程序入口
16 /// </summary>
17 /// <param name="args"></param>
18 static void Main(string[] args)
19 {
20 try
21 {
22 //exe同级目录下的pathconfig配置文件
23 string dataPath = Directory.GetCurrentDirectory() + @"\PathConfig.txt";
24 //用流方式读取配置文件
25 StreamReader streamReader = new StreamReader(dataPath);
26 //因为只设置了一行,用逗号隔开,所以只读一行
27 string msg = streamReader.ReadLine();
28 //将两个路径分开
29 string[] getPath = msg.Split(',');
30 //第一个是输入路径
31 string inPath = getPath[0];
32 //第二是输出路径
33 string outPath = getPath[1];
34 //读完后关闭加载器
35 streamReader.Close();
36 Console.WriteLine("文件路径:" + inPath);
37 Console.WriteLine("转换存放路径:" + outPath);
38 List<string> xlsPathList = new List<string>();//用来接指定文件路径
39 List<string> tmpList = new List<string>();//递归过渡缓存
40 //拿到指定xls路径列表
41 xlsPathList = GetAllXls(inPath, tmpList);
42 //遍历转换
43 for (int i = 0; i < xlsPathList.Count; i++)
44 {
45 Console.WriteLine(string.Format("开始转换{0}...", xlsPathList[i]));
46 StartConver(xlsPathList[i], outPath);
47 }
48 Console.WriteLine("全部转换已经完成!");
49 Console.ReadLine();
50 Console.Clear();
51 }
52 catch (Exception e)
53 {
54 Console.WriteLine(e.Message);
55 Console.ReadLine();
56 return;
57 }
58 }
59 /// <summary>
60 /// 开始转换
61 /// </summary>
62 /// <param name="inPath">指定文件路径</param>
63 /// <param name="outPath">转换完成输出路径</param>
64 static void StartConver(string inPath, string outPath)
65 {
66 try
67 {
68 Workbook work = new Workbook();//实例化一个对象
69 work.LoadFromFile(inPath);//调用对象方法,加载指定文件
70 WorksheetsCollection sheetArr = work.Worksheets;//拿到这个xls所有的sheet
71 //遍历所有的sheet
72 for (int i = 0; i < sheetArr.Count; i++)
73 {
74 string printPath = outPath + sheetArr[i].Name + ".csv";//输出路径指定命名
75 sheetArr[i].SaveToFile(printPath, ",", Encoding.UTF8);//保存转换完成的文件到路径下,设置编码格式
76 Console.WriteLine(string.Format("转换完成{0}", sheetArr[i].Name));
77 }
78 }
79 catch (Exception e)
80 {
81 Console.WriteLine(e.Message);
82 Console.ReadLine();
83 }
84 }
85 /// <summary>
86 /// 获取指定路径下所有指定类型的文件路径
87 /// </summary>
88 /// <param name="inPath">指定文件夹路径</param>
89 /// <param name="fileList">路径列表</param>
90 /// <returns></returns>
91 static List<string> GetAllXls(string inPath, List<string> fileList)
92 {
93 string fileName;
94 DirectoryInfo dir = new DirectoryInfo(inPath);//实例化路径对象
95 FileInfo[] fil = dir.GetFiles();//从对象上拿到所有的文件列表
96 DirectoryInfo[] dii = dir.GetDirectories();//得到当前路径的所有子目录
97 //遍历文件列表,拿到指定类型文件
98 foreach (FileInfo f in fil)
99 {
100 fileName = f.FullName;
101 if (fileName.EndsWith("xls"))
102 {
103 fileList.Add(fileName);
104 }
105 }
106 //这里是递归,用来拿到子目录里面还有文件里面的指定文件
107 foreach (DirectoryInfo d in dii)
108 {
109 GetAllXls(d.FullName, fileList);
110 }
111 return fileList;
112 }
113 }
114 }

(1)路劲问题

你要转文件,肯定得有一个起点一个终点,不推荐在代码里面写死路径,这样可以保证通用性,我写得比较懒,直接把两个路径写成配置文件,间接明了

这里需要注意的是,stream这些文件流在使用完成后必须关闭;Directory.GetCurrentDirectory() 这个就是你的exe所在文件夹路径

(2)用递归去获取xls文件是为了防止有些表分类很细很细,这里也是写死了是xls

(3)到这里转换就需要用到spire库,主要的转换功能就在它,就在它,就在它!重要的事情说三遍

(3)最后就可以运行了,我是直接转到unity里读取,当然你也可以再继续转成json文件放到unity里,其实都是一样的

指定路径批量将xls转换成csv的更多相关文章

  1. 用 unoconv 将 xls 转换成 csv

    在 Linux 下,用 unoconv 将 xls 转换成 csv. unoconv -f csv -v input.xlsx

  2. 【游戏开发】Excel表格批量转换成CSV的小工具

    一.前言 在工作的过程中,我们有时可能会面临将Excel表格转换成CSV格式文件的需求.这尤其在游戏开发中体现的最为明显,策划的数据文档大多是一些Excel表格,且不说这些表格在游戏中读取的速度,但就 ...

  3. 将DataTable转换成CSV文件

    DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记 ...

  4. 转换成CSV文件、Word、Excel、PDF等的方法--读取CSV文件的方法

    1. 转换成CSV文件: http://www.dotnetgallery.com/lab/resource93-Export-to-CSV-file-from-Data-Table-in-Aspne ...

  5. 批量将网页转换成图片或PDF文档技巧分享

    工作中我们有时要将一些批量的网页转换成图片或者PDF文档格式,尽管多数浏览器具有滚动截屏或者打印输出PDF文档功能.可是假设有几十上百张网页须要处理,那也是要人命的.所以我一直想找一款可以批量处理该工 ...

  6. 使用VBA批量转换Excel格式,由.xls转换成.xlsx

    问题分析: Excel2007以前的格式是.xls,之后的格式是.xlsx.打开单独的一个Excel文档,使用“另存为”功能,可以很轻松的转换格式.但是面对几百个Excel表这样就太累了,搜索很久,也 ...

  7. Python: 把txt文件转换成csv

    最近在项目上需要批量把txt文件转成成csv文件格式,以前是手动打开excel文件,然后导入txt来生产csv文件,由于这已经变成每周需要做的事情,决定用python自动化脚本来实现,思路: 读取文件 ...

  8. 将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd。总结下。

    可以为Date原型添加如下的方法: Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth() ...

  9. 怎样把txt文档转换成csv文件?

    其实csv就是逗号隔开的一行一行的数据, 如果每行数据中都是用逗号分隔的,直接把文件后缀txt改成csv就行了. 用python搞定: import numpy as np import pandas ...

随机推荐

  1. MongoDB的可视化工具(Studio 3T)

    ​​ 前面我们已经介绍了MongoDB怎么安装,接下来要安装他的可视化工具——Studio 3T. 先到这下载一个压缩包,百度网盘,https://pan.baidu.com/s/1M8mlWo334 ...

  2. 如果有人问你 JFinal 如何集成 EhCache,把这篇文章甩给他

    废话不多说,就说一句:在 JFinal 中集成 EhCache,可以提高系统的并发访问速度. 可能有人会问 JFinal 是什么,EhCache 是什么,简单解释一下. JFinal 是一个基于Jav ...

  3. Python——Pandas速查手册中文版

    转自——http://blog.csdn.net/qq_33399185/article/details/60872853,非常感谢大神的整理! 还有图片版,转自——https://zhuanlan. ...

  4. 【JavaScript】 直接下载保存文件

    //直接下载保存文件 function Download(filePath) { // 如果中间IFRAME不存在,则添加 if (!document.getElementById("_SA ...

  5. uniapp 用户拒绝授权再次调起授权-语音识别、微信地址、附近地址

    小程序重构,采用 uniapp 框架.记录一下踩过的坑.关于用户拒绝再次调起授权,及如何识别语音识别.微信地址.附近地址的处理. 语音识别 组件 语音识别,小程序只有录音功能,若要识别录音文件,常规做 ...

  6. Kubernetes中的PV和PVC是啥

    K8S引入了一组叫作Persistent Volume Claim(PVC)和Persistent Volume(PV)的API对象,大大降低了用户声明和使用持久化Volume的门槛. 在Pod的Vo ...

  7. 前端深入之css篇丨2020年前,彻底掌握css动画【animation】

    写在前面 马上就2020年了,不知道小伙伴们今年学习了css3动画了吗? 说起来css动画是一个很尬的事,一方面因为公司用css动画比较少,另一方面大部分开发者习惯了用JavaScript来做动画,所 ...

  8. postman环境变量设置

    1.点击小齿轮进入到环境变量添加页面,点击add添加环境变量 2.输入变量名称和变量值 3.添加成功 4.接口中设置变量

  9. 不该背的锅也要背,Gitee.com被停止域名解析

    1.Gitee.com被停止域名解析 今天下午发现码云打不开了,打开是这样的 350万的男性交友平台说挂就挂,简直惨无人道!目前已有超过 350 万的开发者选择码云,不为啥,,就冲这个私有.免费这两个 ...

  10. USACO环绕岛屿Surround the Islands 并查集 枚举暴力

    题目描述 Farmer John has bought property in the Caribbean and is going to try to raise dairy cows on a b ...