public static bool LoadLotDataForLabelER(ref SLotData aLotData, out string strError)
        {
            if (m_xlApp == null)
            {
                strError = "Office Excel 未啟動 !";
                return false;
            }            string strFileName = INI.PATHS.SerialFilesPath + aLotData.SerialNo + ".xls";
            bool bOK = File.Exists(strFileName);            if (bOK)
            {
                Excel.Workbook xlWorkBook = null;
                Excel.Worksheet xlWorkSheet = null;
                Excel.Range range = null;
                string strTmp;
                object obj;                try
                {
                    xlWorkBook = m_xlApp.Workbooks.Open(strFileName, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
                    range = xlWorkSheet.UsedRange;                    // SN
                    obj = (range.Cells[1, 2] as Excel.Range).Value2;
                    strTmp = (obj != null) ? obj.ToString() : "";
                    aLotData.SN = strTmp.Trim();                    // QTY
                    obj = (range.Cells[3, 2] as Excel.Range).Value2;
                    strTmp = (obj != null) ? obj.ToString() : "";
                    int.TryParse(strTmp, out aLotData.QTY);                    // Date
                    obj = (range.Cells[4, 2] as Excel.Range).Value2;
                    strTmp = (obj != null) ? obj.ToString() : "";
                    DateTime.TryParse(strTmp, out aLotData.Time);                    // LOT
                    obj = (range.Cells[7, 2] as Excel.Range).Value2;
                    strTmp = (obj != null) ? obj.ToString() : "";
                    aLotData.LotNo = strTmp.Trim();                    // TYPE
                    obj = (range.Cells[8, 2] as Excel.Range).Value2;
                    strTmp = (obj != null) ? obj.ToString() : "";
                    aLotData.Type = strTmp.Trim();                    // PN
                    obj = (range.Cells[9, 2] as Excel.Range).Value2;
                    strTmp = (obj != null) ? obj.ToString() : "";
                    aLotData.PN = strTmp.Trim();                    // EE  Cells(14,2) to (17,5)
                    int iRow = 14;
                    int iCol = 2;
                    for (int i = 0; i <4; i++)
                    {
                        float[] values = new float[4];
                        
                        for (int k = 0; k < 4; k++)
                        {
                            obj = (range.Cells[iRow + i, iCol + k] as Excel.Range).Value2;
                            strTmp = (obj != null) ? obj.ToString() : "";                            float.TryParse(strTmp, out values[k]);
                        }                        SMinMaxAvgStdDataSet eeItem = aLotData.eeData.Items[i];
                        eeItem.Min = values[0];
                        eeItem.Avg = values[1];
                        eeItem.Max = values[2];
                        eeItem.Std = values[3];
                    }
                }
                catch
                {
                    bOK = false;
                }                if (xlWorkBook != null)
                    xlWorkBook.Close(true, null, null);                _releaseXlsObject(xlWorkSheet);
                _releaseXlsObject(xlWorkBook);                
            }            if (!bOK)
            {
                strError = "XLS檔案有問題: " + strFileName;
                return false;
            }            strError = null;
            return true;
        }
请问我现在的对象是csv文档,我应该怎么改这里面的代码呢?

解决方案 »

  1.   

    就是想把抓取資料的對象是Excel現在轉csv對象,謝謝能給出具體代碼么?
      

  2.   

    1.csv不是对象,而是文件格式
    2.excel本身就可以另存为csv文件,所以你根本就不必提取数据,你只需要调用excel的saveas 方法直接保存为csv文件即可
      

  3.   

    可是  大師  我是想在csv裏面獲取檔案,不是要寫入保存,麻煩看下代碼好嗎?
      

  4.   

    如果是读取csv文件也同样不必如此,ado.net本身就直接支持从csv文件中读写数据so,代码不写了你直接google “ado.net+csv”即可
      

  5.   

    其实就在保存的时候后缀改成csv就行了,基本是可以互换。csv文件可以在excel中完美打开
      

  6.   

    我暈了   事情這樣的  我們要獲取客戶的資料然後放入textbox裏面,原先以為客戶的資料是excel的,現在是csv的,所不知道怎麼辦了!!!
      

  7.   

    这个对你有用:  public static void WriteTxt(string filePathName,bool append, List<string[]> ls)
      {
         StreamWriter fileWriter=new StreamWriter(filePathName,append,Encoding.Default);
         foreach(string[] strArr in ls)
        {
             fileWriter.WriteLine(String.Join (“\t",strArr) ); //以tab为分隔
        }
         fileWriter.Flush();
         fileWriter.Close();  
      }
      

  8.   

    不好意思各位  我這個問題問的是很白癡了!現在我重新整理了一下問題1.有一個csv文檔,裏面有一行文字  1,aaa
    2.創建一個lable和一個textbox
    3.讀取到csv文檔
    4.根據逗號前面的1來對應lable然後把逗號後面的aaa賦值給textbox.text,
    5.關閉數據流
      

  9.   

    可以读一行,再用“,”split后就行判断取值
      

  10.   

    csv只不过是 逗号分隔的文本而已。
    按照普通的文本一样读取。然后逗号分开。就完了。
    一行行的读,
      

  11.   

    没有代码,只有思路
    StreamReader sr = new StreamReader(文件名,Encoding.Default);
     string tempStr = sr.ReadLine();//读取的是第一行数据
    while (!string.IsNullOrEmpty(tempStr))
    {
          string[] array = tempStr.Split(',');
          按照你的内容,array[0]应该是1,array[1]是aaa
          array[0]和你的lable值对应
           array[1]和你的text对应
           tempStr=sr.ReadLine();
    }
    sr.Close();