———————————1:获取文件数据
PDF文件
txtPage = lib.Files.PDFHelper.Instance.GetAllPageText(fileName);//全部文本不保留格式
txtPage = lib.Files.PDFHelper.Instance.GetTextFromAllPage(fileName); //全部文本保留格式
int pageCount = lib.Files.PDFHelper.Instance.GetPageCount(fileName);//获取页码
for(i=1;i<=pageCount;i++)//通过循环获取每一页的文本
{
txtPage=lib.Files.PDFHelper.Instance.GetTextByPage(fileName,i);
log.AppendLine(txtPage);//打印输出
}
lib.Files.ExchangeImageInfo image = new lib.Files.ExchangeImageInfo(); //保存图谱
//包括页码 图谱 文本数据 此方法解析更加快
Dictionary<int, PageData> allPageData = lib.Files.PDFHelper.Instance.GetTextFromAllPageQuick(ds.LocalFileName);
foreach (var pageData in allPageData)
{
txtPage = pageData.Value.Text; //每一页数据
image = pageData.Value.SheetImages;//图谱
}
Excel文件
Excel文件获取指定多个表格数据 查看 北京 3324脚本
Area area = null;
AreaRow row = null;
area = areas.Find(s => s.AreaName.Contains(" 工作表名"));//选择具体的工作表
area = areas[0];//第一个工作表
//采集
if (areas.Count <= 0)
{
throw new System.Exception("数据源文件中不存在数据");
}
for (i = 7; i < area.Rows.Count; i++)
{
row = area.Rows[i];//全部数据
iValue = row[0].Value;//第一列全部数据
area.Rows[0].Row[0].Value//第一列第一行数据
if (i == 0)//标题行
{
for (j = 1; j < row.Row.Count; j++)
{
columnDic.Add(j, row[j].Value);//Dictionary数据类型保存到的为第一行的标题
}
}
}
CSV文件
contents = File.ReadAllLines(fileName, Encoding.Default); 文本形式;
Word文件
List<Area> areaList = new List<Area>();
txtPage = lib.Files.WordHelper.LoadFileForArea(ds.LocalFileName, out areaList);
foreach (Area area in areaList)
{
foreach (var row in area.Rows)
{
firstValue = row[0].Value;//Word文件与Excel相同 获取到第一列全部数据
}
}
Word文件转区域数据
List<Area> areaList = new List<Area>();
List<object> list = new List<object>();
txtPage = lib.Files.WordHelper.LoadFileForArea(ds.LocalFileName, out areaList);
string firstValue = string.Empty;
bool isBegin = false;
string Area = string.Empty;//面积
sampleNo = txtPage.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)[3].Trim();
if (sampleNo.Contains("检"))
{
sampleNo=sampleNo.Split('检')[1];
}
foreach (Area area in areaList)
{
rd._区域数据.Add(area.AreaName, area);
foreach (var row in area.Rows)
{
firstValue = row[0].Value;
Area= row[8].Value.Split(' ')[0];
projectName = row[11].Value;
}
.TXT文本文件
contents = File.ReadAllLines(ds.LocalFileName);//读取文本的每一行数据
for (i = 0; i < contents.Length; i++)
{
row = contents[i];// 全部数据
cells = row.Trim().Split(new string[] { "\t", " " }, StringSplitOptions.RemoveEmptyEntries);//通特点字符拆分数据列
cells [i]指定i列的数据
}
———————————2:图谱截取方法
PDF文件图谱
// 图片处理
List<lib.Files.ExchangeImageInfo> listImages = lib.Files.PDFHelper.Instance.ConvertPagesToImages(pdfPath,imagePage);
for(i = 0 ; i < listImages.Count ; i++)
{
sampleNo = string.Format("{0}-{1}.jpg",fileNameHeader,i);
item = new lib.Model.LimsDataItem(sampleNo,sampleTime,"图谱",sampleNo,listImages[i].ImageBase64Str,"图谱",1,"");
rd.Lims原始数据.Add(item);
}
———————————3:数据拆分方法
拆分行
contents = content.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);//用循环遍历即可
拆分列
cells = row.Trim().Split(new string[] { "\t", " " }, StringSplitOptions.RemoveEmptyEntries);//用循环遍历即可
———————————4:Lims原始数据结果及特殊处理
- 1、让返回结果中的特定的一项名称结尾加1或者添加其他字符
for (i = 0; i < rd.Lims原始数据.Count; i++)
{
rd.Lims原始数据[i].ParamName = rd.Lims原始数据[i].ParamName.Replace("化合物", "化合物" + j);
}//ParamName是参数名意思
- 2、转换成区域数据
Area area = content.转换成区域数据(首列是否有列名: false);
rd._区域数据.Add((++i).ToString(),area);
continue;
———————————5:字符串处理方法
- 字符串string s = “1,2,3,4,5,” 目标删除最后一个字符
1、用的最多的是Substring
s = s.Substring(0,s.Length - 1)
2、用TrimEnd,这个东西传递的是一个字符数组
char[] MyChar = {'5',','};
s = s.TrimEnd(MyChar);
3、用Remove
string a = "123";
a = a.Remove(a.Length - 1,1); //移除掉","
- 三元表达式判断实验日期 实验类型等等
sampleType = (sampleNo.ToUpper().Contains("STD")) ? "标物" : "实验室";//实验类型
sampleTime = DateTime.TryParse(txtPage.FindByLineFirst("采集时间 :"), out sampleTime) ? sampleTime : DateTime.Now;//实验时间
- 字符串string s = "fdlsfjl"; 获取指定字符前的全部字符
string mess = s.Substring(0, s.IndexOf('s'));
- 字符串string s = "fdlsfjl"; 获取指定字符后的全部字符
sampleNo = sampleNo.Substring(sampleNo.IndexOf('/')+1);
- 字符串"string sArray= [含量测定]-玄参#供试品-YP2022E0053-2"按特定字符拆分字符串
string[] sArray=suffixName.Split('-') ;//结果是数组 获取相应的sArray[下标]
- string转换为int
int.TryParse( 字符串 ,out int变量)
- 获取文件名
string FileName= System.IO.Path.GetFileNameWithoutExtension(ds.SourceFileName);//没有后缀
string FileName= System.IO.Path.GetFileName(ds.SourceFileName);//包含后缀
———————————6:转换为区域数据
projectList.Add(row.Trim());
content = string.Join("\r\n", projectList).Trim();
Area area = content.转换成区域数据();
cellValue = string.Format("{0}+转换数据", pageData.Key);
rd._区域数据.Add(cellValue, area);
foreach (AreaRow areaRow in area.Rows)
{
}