1. 程式人生 > >windows窗體(winform)中嵌入顯示Excel工作表。

windows窗體(winform)中嵌入顯示Excel工作表。

環境:c#2005,Excel2003.
1 實現後的效果如下圖:
(截圖)
2 實現程式碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Owc11;

namespace CityToProvince.GUILayer
{
public partial class frmExcel : Form
{
public frmExcel()
{
InitializeComponent();
}

private void buttonOpen_Click(object sender, EventArgs e)
{
OpenFileDialog myOpenFileDialog = new OpenFileDialog();
myOpenFileDialog.Filter = "Excel檔案(*.xls)|*.xls|xml格式表格(*.xml)|*.xml";
myOpenFileDialog.FilterIndex = 2;
myOpenFileDialog.Title = "選擇xml檔案";
myOpenFileDialog.InitialDirectory = "c:\\";
myOpenFileDialog.RestoreDirectory = true;
DialogResult dr = myOpenFileDialog.ShowDialog();
if (dr == DialogResult.OK)
{
try
{
this.axSpreadsheetExcel.XMLURL = myOpenFileDialog.FileName;
}
catch
{
MessageBox.Show("錯誤");
}
}
}

private void buttonConvert_Click(object sender, EventArgs e)
{//xls->xml and open
OpenFileDialog myOpenFileDialog = new OpenFileDialog();
myOpenFileDialog.Filter = "Excel檔案(*.xls)|*.xls";
myOpenFileDialog.FilterIndex = 1;
myOpenFileDialog.Title = "選擇Excel檔案";
myOpenFileDialog.InitialDirectory = "c:\\";
myOpenFileDialog.RestoreDirectory = true;
DialogResult dr = myOpenFileDialog.ShowDialog();
if (dr == DialogResult.OK)
{
try
{
ExcelProcess.ExcelProcess myExcel = new ExcelProcess.ExcelProcess();
myExcel.OpenFileName = myOpenFileDialog.FileName;
string saveXmlName = myOpenFileDialog.FileName.ToString().Replace("xls", "xml");
if (System.IO.File.Exists(saveXmlName))
{
System.IO.File.Delete(saveXmlName);
}
myExcel.SaveFileName = saveXmlName;
myExcel.OpenExcelFile();
myExcel.SaveExcelAsXML();
myExcel.CloseExcelApplication();

}
catch
{
MessageBox.Show("轉換錯誤");
}
}

}

private void buttonClose_Click(object sender, EventArgs e)
{
//this.axSpreadsheetExcel.XMLURL = null;
this.Close();
}

private void buttonConvertOpen_Click(object sender, EventArgs e)
{
//xls->xml and open
OpenFileDialog myOpenFileDialog = new OpenFileDialog();
myOpenFileDialog.Filter = "Excel檔案(*.xls)|*.xls";
myOpenFileDialog.FilterIndex = 1;
myOpenFileDialog.Title = "選擇Excel檔案";
myOpenFileDialog.InitialDirectory = "c:\\";
myOpenFileDialog.RestoreDirectory = true;
DialogResult dr = myOpenFileDialog.ShowDialog();
if (dr == DialogResult.OK)
{
try
{
ExcelProcess.ExcelProcess myExcel = new ExcelProcess.ExcelProcess();
myExcel.OpenFileName = myOpenFileDialog.FileName;
string saveXmlName = myOpenFileDialog.FileName.ToString().Replace("xls", "xml");
if (System.IO.File.Exists(saveXmlName))
{
System.IO.File.Delete(saveXmlName);
}
myExcel.SaveFileName = saveXmlName;
myExcel.OpenExcelFile();
myExcel.SaveExcelAsXML();
myExcel.CloseExcelApplication();
this.axSpreadsheetExcel.XMLURL = saveXmlName;
}
catch
{
MessageBox.Show("轉換錯誤");
}
}

}

private void buttonSave_Click(object sender, EventArgs e)
{
SaveFileDialog mySaveFileDialog = new SaveFileDialog();
mySaveFileDialog.Title = "匯出Excel檔案的名稱";
mySaveFileDialog.Filter = "Excel檔案|*.xls";
string exportExcelFile;
mySaveFileDialog.InitialDirectory = SysCommon.ShareData.ExportExcelPath;
DialogResult mydr = mySaveFileDialog.ShowDialog();
if (mydr == DialogResult.OK)
{
exportExcelFile = mySaveFileDialog.FileName;
this.axSpreadsheetExcel.Export(exportExcelFile, SheetExportActionEnum.ssExportActionNone,
SheetExportFormat.ssExportAsAppropriate);
}
}
}
}
其中ExcelProcess操作類

http://www.cnblogs.com/emanlee/archive/2007/05/31/766520.html

相關推薦

windows窗體winform嵌入顯示Excel工作

環境:c#2005,Excel2003. 1 實現後的效果如下圖: (截圖) 2 實現程式碼: using System; using System.Collections.Generic; using System.ComponentModel; using System

Visual Studio 兩個窗體WinForm之間相互傳值的方法

編寫WinowsForm應用程式時,實現兩個窗體之間相互傳遞值的方法其實很簡單。以下用一個例子說明:在名為FormMain主窗體執行過程中利用名為FormInfo窗體,獲取使用者輸入資訊,並將這些資訊返回給FormMain 1. FormMain和FormInfo 點選“

Windows子系統WSL配置開機啟動服務

在WSL中跑了一些測試服務 比如 mysql nginx等,但關機後每次都要手動開啟甚是吃力,本想著用rc.local來編輯開機啟動 ,無奈不支援啊!先看看非WSL環境中是怎麼實現的。 在 Ubuntu 18一下,設定開機自動啟動一般是編輯 /etc/rc.local 在 Ubuntu 18以上則需要連結

C#--第11周實驗--任務1建立Windows窗體應用程式--設計一個窗體--單擊按鈕時,在標籤上顯示當前系統時間 .

/* (程式頭部註釋開始)    * 程式的版權和版本宣告部分    * Copyright (c) 2011, 煙臺大學計算機學院學生     * All rights reserved.    * 檔名稱:設計一個窗體   * 版 本 號: V1.0     * 對任務

ANDROID專案嵌入高德地圖配置環境+顯示地圖

最近在做專案中嵌入高德地圖的工作,覺得有必要記錄一下嵌入過程,雖然高德官方給說明文件了,但有寫並不明確需要去查類,查資料,再此把過程記錄一下。 一、顯示地圖 1.配置AndroidManifest.xml檔案 可能需要如下許可權: <!--允許程式開啟網路套接字-

使用cefsharp將html嵌入windows formwindows窗體應用程式

1.新建windows窗體應用程式---不多說2.安裝Nugget程式包    A:線上情況-略    B:離線情況            專案---管理NuGet程式包----設定---程式包源----加號---修改源為已下載好的nugget包的路徑---更新---將本來存

C#--第11周實驗--任務1建立Windows窗體應用程式--設計一個窗體--單擊按鈕時,在標籤上顯示當前系統時間

Form.cs /* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:設計一個窗體 * 作 者: 雷恆鑫

在模態框Modal使用UEditor全屏顯示的一個坑

hub efi 粘貼 之前 ttr fine edit style sse   根據這個問題很簡單就能查到一些文章明確說明了解決問題的方法,就是如下一段代碼: var isModal = false; //判斷該dom是否為modal var classes = $(co

Windows下在PythonAnaconda安裝Dlib庫

Windows下在Python(Anaconda)中安裝Dlib庫 引言   介紹在Windows作業系統下,在Python的Anaconda整合環境中,安裝Dlib庫; 對於不瞭解原始碼編譯的,或者利用cmake方法失敗的,可以嘗試下此方法: Windows 10 + Python

Windows 10 自帶的LinuxUbuntu安裝redis 步驟Mark

安裝步驟參考:https://blog.csdn.net/xiangwanpeng/article/details/54586087問題一:安裝完gcc後執行make命令的時候出現 'make' can be found in the following packages:於

WinFormTreeView的節點位置轉換螢幕座標,節點高亮顯示問題的解決方案

(WinForm)TreeView的節點位置轉換螢幕座標如果我可以確定該節點是樹中的第幾個節點,那麼怎麼把知道它的螢幕座標啊?因為可能有滾動條,不知道treeview中確定滾動條的偏移的是哪個。望高人指點! ------解決方案--------------------如下得到

U盤(usb儲存)在磁碟管理可以顯示 但是伺服器電腦找不到

WINDOWS2003 server環境,然後在磁碟管理顯示是正常的,良好; 如圖以下的問題 1、我先嚐試了吃下方法;沒有解決了,有磁碟顯示,但是讀不到任何的空間大小,為0; 解決方法: 右擊“我的電腦”,在彈出的快捷選單中選擇“管理”命令,進入到“計算機管

響應式佈局-圖片列表如何在窄屏768px顯示為有間隙的一行

       摘要:本文旨在介紹在寬屏(>768px)中圖片列表中如何顯示為有固定間隙的一行排列,介紹了筆者自己嘗試過得五種寫法,並分析了其缺點,採用什麼方法就得見人見智,具體情況具體分析了。         如何在窄屏(<320px)中顯示為一列呢,做出的顯示

神經網絡結構在命名實體識別NER的應用

field edi most 好的 向量 後來 目標 領域 png 神經網絡結構在命名實體識別(NER)中的應用 近年來,基於神經網絡的深度學習方法在自然語言處理領域已經取得了不少進展。作為NLP領域的基礎任務—命名實體識別(Named Entity Recogni

Unity Editor 檢查工程Prefab預設的空組件

com game filepath ddr bug str 技術 程序 string 在我們做項目的過程中 經常會有預設中出現空的腳本 例如: 導致的原因是因為 腳本的丟失 現在我們來做一個檢查工程中有空腳本的預設工具 老規矩直接上代碼 放到工程就能用 using

Java內存模型JMM的happens-before

ati img 執行 簡單 pen 性能 .cn style 程序員   happens-before是JMM中最核心的概念,對於Java程序員來說,理解happens-before是理解JMM的關鍵 。 1.JMM的設計   首先,來看看JMM的設計意圖。從JMM的設計者

STM32學習之路-LCD4&lt;顯示字符&gt;

計算 ack 字節 ring oid ng- 透明 標點符號 函數 昨晚瘋狂的打了一夜的LOL,感覺L多了,今天一天精神萎靡.還是繼續把顯示字符給看了,可是在猶豫要不要寫這篇文章 事實上寫的東西也就是copy別人家的代碼,不想寫那麽多,就記錄下自己困惑的地方吧.也

直方圖histogram的bins應如何理解

histogram 一個histogram,通常可以用一個列向量表示(例子中的a,b),列向量裏面的每一個值就是一個bin(a,b),比如說列向量有個50個元素,那麽就代表有50個bin。 對於彩色圖像,一般是rgb,3個維度,每個顏色一般是0-255的灰度級,就是對應8個bin,每個維度8bin,8x

命令提示符cmd的tracert命令詳解

跳轉 路由 操作系統 時間 經驗 由器 其中 cti 地址 tracert也被稱為Windows路由跟蹤實用程序,在命令提示符(cmd)中使用tracert命令可以用於確定IP數據包訪問目標時所選擇的路徑。本文主要探討了tracert命令的各個功能。 工具

計算機圖形學 視頻顯示設備_1_CRT原理

http color size 安裝 ref p s 這一 計算機圖形學 指定 第 1 章 圖形系統概述 如今。計算機圖形學的作用與應用已經得到了廣泛承認。大量的圖形硬件和軟件系統已經應用 到了差點兒全部的領域。通用計算機甚至很多手持計算器也已經