1 Star 0 Fork 0

黄宇轩/bpmFileCopy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
fileUtils.cs 2.75 KB
一键复制 编辑 原始数据 按行查看 历史
黄宇轩 提交于 2024-11-19 16:59 . 优化代码逻辑
using OfficeOpenXml;
namespace WinFormsApp1
{
internal class fileUtils
{
internal static List<string> read(string filePath)
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
List<string> list = new List<string>();
try
{
// 读取 Excel 文件
using (var package = new ExcelPackage(new FileInfo(filePath)))
{
// 获取第一个工作表
var worksheet = package.Workbook.Worksheets[0];
// 假设数据从 A 列开始,读取所有非空单元格
var columnAValues = worksheet.Cells["A1:A" + worksheet.Dimension.End.Row]
.Select(cell => cell.Text)
.Where(text => !string.IsNullOrWhiteSpace(text))
.ToList();
// 处理每个值
foreach (var value in columnAValues)
{
//截取前后字符串
string processedValue = ProcessString(value);
//字符串反转并添加路径
string reversalValue = reversal(processedValue);
//添加处理后的字符串到列表中
list.Add(reversalValue);
}
}
}
catch (Exception)
{
MessageBox.Show("读取数据异常!");
}
return list;
}
private static string reversal(string input)
{
var groups = Enumerable.Range(0, (input.Length + 1) / 2) // +1 是为了确保奇数长度时,最后一个字符单独处理
.Select(i => input.Substring(i * 2, Math.Min(2, input.Length - i * 2))) // 处理最后一组字符可能不足 2
.ToList();
// 步骤2:反转组的顺序
groups.Reverse();
// 步骤3:拼接反转后的组,并加入 \ 分隔符
string result = string.Join("\\", groups);
return result;
}
private static string ProcessString(string input)
{
int length = input.Length;
if (length % 2 == 0) // 双数长度
{
// 截取前 2 位和后 2 位
var a = input.Substring(2);
var b = a.Substring(0, a.Length - 2);
return b;
}
else // 单数长度
{
// 截取前 2 位和后 1 位
var a = input.Substring(2);
var b = a.Substring(0, a.Length - 1);
return b;
}
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/Huang-YX_admin/bpm-file-copy.git
git@gitee.com:Huang-YX_admin/bpm-file-copy.git
Huang-YX_admin
bpm-file-copy
bpmFileCopy
master

搜索帮助