打开Excel工作簿,但将计算设置为手动

时间:2011-10-07 21:52:33

标签: c# .net

我尝试了一些选项,但似乎没有选择,有些发送错误。

请让我知道我做错了什么

public string Main(String wbPath, String wbName)
{
    string cName = "";
    Excel.Application xlApp;
    Excel.Workbook xlWB;
    Excel.Worksheet xlWS;


    xlApp = new Excel.Application();
    xlApp.DisplayAlerts = false;
    xlApp.Calculation = Excel.XlCalculation.xlCalculationManual;       //Error occurs here 

    xlWB = xlApp.Workbooks.Open(wbPath + wbName);

    xlWB.SaveAs("vFile.html", Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml);
    cName = xlWB.FullName;
    xlWB.Close();


    xlApp.Quit();

    return cName;
}

错误代码:

{"Exception from HRESULT: 0x800A03EC"}

2 个答案:

答案 0 :(得分:20)

您必须在设置xlApp.Calculation之前打开工作簿:

static void Main(string[] args)
{
    string cName = "";

    var xlApp = new Application();

    var xlWB = xlApp.Workbooks.Open("youpathgoeshere", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    xlApp.Calculation = XlCalculation.xlCalculationManual;

    var xlWS = new Worksheet();

    xlWB.SaveAs("vFile.html", Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml);
    cName = xlWB.FullName;
    xlWB.Close();

    xlApp.Quit();

}

答案 1 :(得分:0)

您可以尝试此解决方案:

此示例使Microsoft Excel在将工作簿保存到磁盘之前计算它。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.bluetoothlegatt"
    android:versionCode="1"
    android:versionName="1.0">

    <!-- Min/target SDK versions (<uses-sdk>) managed by build.gradle -->

    <!-- Declare this required feature if you want to make the app available to BLE-capable
    devices only.  If you want to make your app available to devices that don't support BLE,
    you should omit this in the manifest.  Instead, determine BLE capability by using
    PackageManager.hasSystemFeature(FEATURE_BLUETOOTH_LE) -->
    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>

    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
    <uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission-sdk-23 android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application android:label="@string/app_name"
        android:icon="@drawable/ic_launcher"
        android:theme="@android:style/Theme.Holo.Light">
        <activity android:name=".DeviceScanActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".DeviceControlActivity"/>
        <service android:name=".BluetoothLeService" android:enabled="true"/>
    </application>

</manifest>
相关问题