<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 數據結構教程 本教程簡要介紹了xlwings在讀取和寫入值時最常見的用例和默認行為。 有關如何使用`options`方法控制行為的深入文檔,請查看[轉換器和選項](converters.md)。 下面所有代碼示例取決于以下導入: ~~~ >>> import xlwings as xw ~~~ ## 單個單元格 默認情況下,單個單元格返回為“float”,“unicode”,“None”或“datetime”對象,具體取決于單元格是否包含數字,字符串,是否為空或表示日期: ~~~ >>> import datetime as dt >>> sht = xw.Book().sheets[0] >>> sht.range('A1').value = 1 >>> sht.range('A1').value 1.0 >>> sht.range('A2').value = 'Hello' >>> sht.range('A2').value 'Hello' >>> sht.range('A3').value is None True >>> sht.range('A4').value = dt.datetime(2000, 1, 1) >>> sht.range('A4').value datetime.datetime(2000, 1, 1, 0, 0) ~~~ ## 列表 * 一維列表:表示Excel中行或列的范圍作為簡單列表返回,這意味著一旦它們在Python中,您就丟失了有關方向的信息。 如果這是一個問題,下一點將向您展示如何保留此信息: ~~~ >>> sht = xw.Book().sheets[0] >>> sht.range('A1').value = [[1],[2],[3],[4],[5]] # 列方向(嵌套列表) >>> sht.range('A1:A5').value [1.0, 2.0, 3.0, 4.0, 5.0] >>> sht.range('A1').value = [1, 2, 3, 4, 5] >>> sht.range('A1:E1').value [1.0, 2.0, 3.0, 4.0, 5.0] ~~~ 要強制單個單元格作為列表到達,請使用: ``` >>> sht.range('A1').options(ndim=1).value [1.0] ``` >[info]注意 要以列方向向Excel寫入列表,請使用`transpose:sht.range('A1').options(transpose = True).value = [1,2,3,4]` * 二維列表:如果必須保留行或列方向,請在Range選項中設置“ndim”。 這將返回Ranges作為嵌套列表(“二維列表”): ~~~ >>> sht.range('A1:A5').options(ndim=2).value [[1.0], [2.0], [3.0], [4.0], [5.0]] >>> sht.range('A1:E1').options(ndim=2).value [[1.0, 2.0, 3.0, 4.0, 5.0]] ~~~ * 2維Range自動作為嵌套列表返回。 將(嵌套)列表分配給Excel中的Range時,只需將左上角的單元格指定為目標地址就足夠了。 此示例還使用索引表示法將值讀回到Python中: ~~~ >>> sht.range('A10').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10, 20, 30]] >>> sht.range((10,1),(11,3)).value [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] ~~~ >[info]注意 盡量減少與Excel的交互次數。 執行`sht.range('A1').value = [[1,2],[3,4]]`總是比`sht.range('A1').value = [1, 2]` 和`sht.range('A2').value = [3, 4]`更有效。 ## Range expanding 您可以通過`expand`方法或`options`方法中的`expand`關鍵字動態獲取Excel范圍的維度。 雖然`expand`會返回一個擴展的Range對象,但只有在訪問Range的值時才會評估選項。 最好用一個例子來解釋差異: ~~~ >>> sht = xw.Book().sheets[0] >>> sht.range('A1').value = [[1,2], [3,4]] >>> rng1 = sht.range('A1').expand('table') # or just .expand() >>> rng2 = sht.range('A1').options(expand='table') >>> rng1.value [[1.0, 2.0], [3.0, 4.0]] >>> rng2.value [[1.0, 2.0], [3.0, 4.0]] >>> sht.range('A3').value = [5, 6] >>> rng1.value [[1.0, 2.0], [3.0, 4.0]] >>> rng2.value [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]] ~~~ `'table'`擴展為`'down'`和`'right'`,其他可用選項分別可用于列或行擴展。 >[info]注意 將`expand()`與命名Range一起作為左上角的單元格,可以在Excel中靈活地設置:您可以在表中移動并更改其大小,而無需調整代碼,例如,使用類似`sht.range('namedrange').expand().value`。 ## NumPy 數組 NumPy數組的工作方式與嵌套列表類似。 但是,空單元格由`nan`而不是`None`表示。 如果要讀取Range作為數組,請在`options`方法中設置`convert = np.array`: ~~~ >>> import numpy as np >>> sht = xw.Book().sheets[0] >>> sht.range('A1').value = np.eye(3) >>> sht.range('A1').options(np.array, expand='table').value array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]]) ~~~ ## Pandas DataFrames ~~~ >>> sht = xw.Book().sheets[0] >>> df = pd.DataFrame([[1.1, 2.2], [3.3, None]], columns=['one', 'two']) >>> df one two 0 1.1 2.2 1 3.3 NaN >>> sht.range('A1').value = df >>> sht.range('A1:C3').options(pd.DataFrame).value one two 0 1.1 2.2 1 3.3 NaN # options: work for reading and writing >>> sht.range('A5').options(index=False).value = df >>> sht.range('A9').options(index=False, header=False).value = df ~~~ ## Pandas系列 ~~~ >>> import pandas as pd >>> import numpy as np >>> sht = xw.Book().sheets[0] >>> s = pd.Series([1.1, 3.3, 5., np.nan, 6., 8.], name='myseries') >>> s 0 1.1 1 3.3 2 5.0 3 NaN 4 6.0 5 8.0 Name: myseries, dtype: float64 >>> sht.range('A1').value = s >>> sht.range('A1:B7').options(pd.Series).value 0 1.1 1 3.3 2 5.0 3 NaN 4 6.0 5 8.0 Name: myseries, dtype: float64 ~~~ >[info]注意 在向Excel寫入列表,NumPy數組或Pandas DataFrame時,您只需要指定左上角的單元格,例如:`sht.range('A1').value = np.eye(10)`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看