namespace Yw.WinFrmUI.Phart
|
{
|
/// <summary>
|
/// 剪切板文本辅助类
|
/// </summary>
|
public class ClipboardCurveTextHelper
|
{
|
/// <summary>
|
/// 获取Excel文本列表
|
/// </summary>
|
/// <returns></returns>
|
public static List<List<string>> GetExcelColTextList()
|
{
|
return GetColTextList("\t");
|
}
|
|
/// <summary>
|
/// 获取Excel double列表
|
/// </summary>
|
/// <returns></returns>
|
public static List<List<double?>> GetExcelColDoubleList()
|
{
|
return GetColDoubleList(null, "\t");
|
}
|
|
/// <summary>
|
/// 获取纵向文本列表
|
/// </summary>
|
/// <param name="separator"></param>
|
/// <returns></returns>
|
public static List<List<string>> GetColTextList(string separator = ",")
|
{
|
var text = Clipboard.GetText();
|
if (string.IsNullOrEmpty(text))
|
return null;
|
var rows = text.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
if (rows.Count < 1)
|
return null;
|
var list = new List<List<string>>();
|
foreach (var row in rows)
|
{
|
var cols = row.Split(new string[] { separator }, StringSplitOptions.None).ToList();
|
list.Add(cols);
|
}
|
|
return list;
|
}
|
|
/// <summary>
|
/// 获取纵向文本列表
|
/// </summary>
|
/// <param name="separator"></param>
|
/// <returns></returns>
|
public static List<List<string>> GetRowTextList(string separator = ",")
|
{
|
var rowsList = GetColTextList(separator);
|
if (rowsList == null || rowsList.Count < 1)
|
return null;
|
var colsList = new List<List<string>>();
|
for (int i = 0; i < rowsList.First().Count; i++)
|
{
|
var list = rowsList.Select(x =>
|
{
|
if (x.Count <= i)
|
return null;
|
return x[i];
|
}).ToList();
|
colsList.Add(list);
|
}
|
return colsList;
|
|
}
|
|
/// <summary>
|
/// 获取纵向Double 列表
|
/// </summary>
|
/// <param name="separator"></param>
|
/// <returns></returns>
|
public static List<List<double?>> GetColDoubleList(List<string> neglectList, string separator = ",")
|
{
|
var text = Clipboard.GetText();
|
if (string.IsNullOrEmpty(text))
|
return null;
|
if (neglectList != null && neglectList.Count > 0)
|
{
|
neglectList.ForEach(x =>
|
{
|
text = text.Replace(x, "");
|
});
|
}
|
|
|
var rows = text.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
if (rows.Count < 1)
|
return null;
|
|
|
var list = new List<List<double?>>();
|
foreach (var row in rows)
|
{
|
var cols = row.Split(new string[] { separator }, StringSplitOptions.RemoveEmptyEntries);
|
var col_doubles = cols.Select(x =>
|
{
|
double? r;
|
if (string.IsNullOrEmpty(x))
|
{
|
r = null;
|
}
|
else
|
{
|
double d;
|
if (double.TryParse(x, out d))
|
{
|
r = d;
|
}
|
else
|
{
|
r = null;
|
}
|
}
|
return r;
|
}).ToList();
|
list.Add(col_doubles);
|
}
|
return list;
|
}
|
|
/// <summary>
|
/// 获取横向Double 列表
|
/// </summary>
|
/// <param name="separator"></param>
|
/// <returns></returns>
|
public static List<List<double?>> GetRowDoubleText(List<string> neglectList, string separator = ",")
|
{
|
var rowsList = GetColDoubleList(neglectList, separator);
|
if (rowsList == null || rowsList.Count < 1)
|
return null;
|
var colsList = new List<List<double?>>();
|
for (int i = 0; i < rowsList.First().Count; i++)
|
{
|
var list = rowsList.Select(x =>
|
{
|
if (x.Count <= i)
|
return null;
|
return x[i];
|
}).ToList();
|
colsList.Add(list);
|
}
|
return colsList;
|
}
|
|
|
|
}
|
}
|