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. Spring只定义接口自动代理接口实现类

    能够扫描到包 @ComponentScan("org.zxp.esclientrhl") ESCRegistrar类主要实现ImportBeanDefinitionRegistra ...

  2. [LeetCode] 822. Card Flipping Game

    Description On a table are N cards, with a positive integer printed on the front and back of each ca ...

  3. Kafka 学习笔记之 Consumer API

    Kafka提供了两种Consumer API High Level Consumer API Low Level Consumer API(Kafka诡异的称之为Simple Consumer API ...

  4. 项目二:企业级java电商网站开发(服务端)

    声明:项目源于网络,支持正版教程,学习使用,仅记录在此 项目介绍 企业级java电商网站开发(服务端),模块划分:用户管理,商品管理,商品品类管理,订单管理,订单详情管理,购物车管理,收货地址管理,支 ...

  5. 云计算之走进LINUX(一)

    引言 小比特的随笔: 亲爱的博友所有随笔部分记录的是小比特的一些学习笔记,阅读性不是太强仅供有基础的博友参考,对小白来说阅读起来可能会有些吃力.当然也可以参考啦!小比特将在文章部分提供详细的内容介绍供 ...

  6. 『嗨威说』算法设计与分析 - PTA 数字三角形 / 最大子段和 / 编辑距离问题(第三章上机实践报告)

    本文索引目录: 一.PTA实验报告题1 : 数字三角形 1.1 实践题目 1.2 问题描述 1.3 算法描述 1.4 算法时间及空间复杂度分析 二.PTA实验报告题2 : 最大子段和 2.1 实践题目 ...

  7. Python中的可变对象与不可变对象、浅拷贝与深拷贝

    Python中的对象分为可变与不可变,有必要了解一下,这会影响到python对象的赋值与拷贝.而拷贝也有深浅之别. 不可变对象 简单说就是某个对象存放在内存中,这块内存中的值是不能改变的,变量指向这块 ...

  8. 张高兴的 .NET Core IoT 入门指南:(五)串口通信入门

    在开始之前,首先要说明的是串口通信所用到的 SerialPort 类并不包含在 System.Device.Gpio NuGet 包中,而是在 System.IO.Ports NuGet 包中.之所以 ...

  9. taro taroUi的H5打包后路径/修改为./

      打包文件路径修改在config/index.tsx中,如下 esnextModules: ['taro-ui'],配置也需要在h5中写入并且将publicPath: './'即可,不需要在做一个h ...

  10. java猜数游戏

    java随机数的产生 int number=(int)(Math.random()*10+1) Math.random()*n //n个随机数,从0开始 do{}while循环 //猜数,1到10的随 ...