亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Excel: xls與xlsx格式轉(zhuǎn)換排坑指南

freeflydom
2025年8月4日 9:19 本文熱度 1343

前言

總結(jié)一下在把Excel 5.0/95 的XLS轉(zhuǎn)換為Excel 2007的XLSX新格式遇到的問題。

數(shù)據(jù)類型匹配

XLS文件里的單元格是General類型,但在XLSX里,是有針對具體的列設(shè)置數(shù)據(jù)類型的,這使得在操作database時(shí),有可能造成數(shù)據(jù)類型不一致的錯(cuò)誤:

string type = string.Empty;
if (!dict.TryGetValue(field, out type))
{
    return "TEXT";
}
switch (type.ToUpper())
{
    case "C":
    case "L": // Bit(Logic) treat as Text
        return "TEXT";
    case "I":
        return "INTEGER";
    case "B":
    case "F":
    case "N":
    case "Y":
        return "DOUBLE";
    case "D":
    case "T":
        return "DATETIME";
    default:
        return "TEXT";
}

再者就是對于空串和Null,似乎xls認(rèn)為沒有什么差異,但xlsx讀取出來,倘若單元格沒有內(nèi)容,""和DB.Null是有差異的:

if (cellValue == DBNull.Value || cellValue == null)
{
  if ((sheetName.Equals("sheet1", StringComparison.OrdinalIgnoreCase) || sheetName.Equals("sheet2", StringComparison.OrdinalIgnoreCase)) &&
      (columnName.Equals("date_from", StringComparison.OrdinalIgnoreCase) || columnName.Equals("date_to", StringComparison.OrdinalIgnoreCase)))
  {
      values += "'" + new string(' ', 16) + "',";
  }
  else
  {
      values += "NULL,";
  }
  continue;

}

內(nèi)容多行時(shí)處理不同

但單元格內(nèi)容有多行時(shí),xls認(rèn)為換行是:CR+LF,xlsx則只有LF, 此時(shí)需要一個(gè)正則,來識別和修正這個(gè)換行:

case "TEXT":
    string escaped = Regex.Replace(cellValue.ToString().Replace("'", "''"), @"(?<!\r)\n", "\r\n");
    values += "'" + escaped + "',";
    break;

default值

在xls中,如果每個(gè)column都有設(shè)置過數(shù)據(jù)類型,不是default的General,此時(shí)修改該column的某一行,如果不匹配,xls將有個(gè)角標(biāo)顯示警告,數(shù)據(jù)類型不符合預(yù)期,xls認(rèn)為這是人為的一個(gè)失誤。讀取時(shí),可能會(huì)被強(qiáng)制成default的值。

但如果事先設(shè)置了值,再設(shè)置數(shù)據(jù)類型,雖然不匹配,xls將無視這個(gè)警告,xls會(huì)當(dāng)做是有意為之。

int: 0;
doouble: 0.0;
bool: string;
DateTime: string;

最大行數(shù)

xls支持的最大行數(shù):大約是65K,65535行。 但是,當(dāng)編輯其中內(nèi)容再次保存時(shí),可能只剩18K,在某些版本(Excel 5.0)會(huì)丟失一部分?jǐn)?shù)據(jù)。

xlsx支持的最大行數(shù):大約是10,000K, 1048576行。這時(shí)候就無法另存為xls格式,數(shù)據(jù)將丟失絕大部分。

?轉(zhuǎn)自https://www.cnblogs.com/shy-huang/p/19016652


該文章在 2025/8/4 9:19:19 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved