DAQ-V3文件数据采集手册

———————————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)
            {

            }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容