python pandas 讀取文件 寫入文件excel


  • 讀取數據
import pandas as pd
import collections
def readLocationCodeForExcel():
    read_file = r"test.xlsx"
    sheet_names = {"庫位碼","地堆碼"}

    sheet_data = pd.ExcelFile(read_file) #讀取sheet數據
   #sheet列表
    read_sheet_data = sheet_data.sheet_names
    #查看缺少的sheet
    lack_set = sheet_names - set(read_sheet_data)
    #初始化數組
    read_code_array = np.array([])
    row_col_array = np.array([])
    region_array = np.array([])
    if lack_set:
        logger.info("缺少的sheet將不會查詢:{}".format(lack_set))

    sheet_names = sheet_names - lack_set
    for sheet_name in sheet_names:

        df = pd.read_excel(read_file,sheet_name=sheet_name,dtype=str)
        if sheet_name in df.keys():
            #print(type(df[sheet_name].values))
            #read_code_list = read_code_list + list(df[sheet_name].values)
            read_code_array = np.hstack((read_code_array,df[sheet_name].values))# 讀取 地堆 列 水平組合 有點像字符組合 str1=str1+strx
            row_col_array = np.hstack((row_col_array,df["位置"].values))
            region_array = np.hstack((region_array,df["區域名稱"].values))
    return read_code_array, row_col_array,region_array
  • 寫入數據
import pandas as pd
import collections

def wirteInventoryDataToExcelTest(data):
    write_file = "path_to_file.xlsx"
    #data = (1,2,3)

    df = pd.DataFrame(data)
    writer =  pd.ExcelWriter(write_file)
    df.to_excel(writer,index=False,startrow=0) # index=False不寫入序號
    #df1.to_excel(writer)
    writer.save()

 #region_array2 等 為 np.array([....]) 數據 其中 region_array2[0] 存的是excel表頭,前面數組同樣
 data_dict = collections.OrderedDict() #把字典變為有序字典 用於寫入excel數據有順序寫入
 data_dict[region_array2[0]] = np.delete(region_array2, 0)
data_dict[row_col_array2[0]] = np.delete(row_col_array2, 0)
data_dict[locationCode_array[0]] = np.delete(locationCode_array,0)
data_dict[identifyCode_array[0]] = np.delete(identifyCode_array, 0)
data_dict[p_qty_array[0]] =  np.delete(p_qty_array, 0)
data_dict[unitName_array[0]] = np.delete(unitName_array, 0)
data_dict[p_name_array[0]] = np.delete(p_name_array, 0)
data_dict[sellAttributeValues_array[0]] = np.delete(sellAttributeValues_array, 0)


 wirteInventoryDataToExcelTest(data_dict)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM