为了效率产出EXCEL.因此用贴数组方式产出EXCELstring[,] AryData = new string[iTotalRows + 1, iTotalCols];//* 略range = sheet.get_Range("A" + iStartRow.ToString(), "I" + Convert.ToString(iStartRow + iTotalRows));
range.Value2 = AryData;
问题是贴出来的栏位全部都似乎是出了问题的文字型.
全部带绿色小箭头"数值储存成文字"然后sum()之类的公式都无法运算.非要手动双击或箭头上选择"储存成数值"才行
无论是手动设置单元格格式还是在程式中写的.似乎都没作用啊..
求解...
下面的已经试过.无效range = sheet.get_Range("C9", "C10");
range.NumberFormat = "G";
range = sheet.get_Range("D9", "D10");
range.NumberFormatLocal = "###,###,##0";
range = sheet.get_Range("H9", "H10");
range.NumberFormatLocal = "00";
range = sheet.get_Range("F9", "F10");
range.NumberFormatLocal = "@";
range = sheet.get_Range("G9", "G10");
range.NumberFormatLocal = "#";

解决方案 »

  1.   


    range = sheet.get_Range("A" + iStartRow.ToString(), "I" + Convert.ToString(iStartRow + iTotalRows));                
    range.Value2 = AryData;
    range.Value2 = range.Value2;    //* 再貼一次.因為第一次數組貼的.數字會變成文字處理
    自己解決了.
    把value2自己給自己賦值一次就好了
    大概是因為第一次賦值是string數組..第二次是excel的range給range賦值
    然後就格式化了.只用把那些身份證字號類似的欄位手動設置成文字型避免科學計數法即可.