国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C# 讀取二維數(shù)組集合輸出到Word預設表格

這篇具有很好參考價值的文章主要介紹了C# 讀取二維數(shù)組集合輸出到Word預設表格。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

應用場景

設計約定

范例運行環(huán)境

配置Office DCOM

實現(xiàn)代碼

組件庫引入

核心代碼

DataSet轉二維數(shù)組

導出寫入WORD表格

調(diào)用舉例

小結


應用場景

存儲或導出個人WORD版簡歷是招聘應用系統(tǒng)中的常用功能,我們通常會通過應用系統(tǒng)采集用戶的個人簡歷信息到數(shù)據(jù)庫,許多情況下我們會讀取數(shù)據(jù)記錄導出到WORD文件中,以便匯總、打印。其中,WORD表格元素是經(jīng)常會被用到的,比如問卷調(diào)查表格、教育經(jīng)歷表格、工作經(jīng)歷表格等等。

設計約定

1、設計WORD模板,在需要輸出值的地方繪制表格,表格的數(shù)量對應輸出的數(shù)據(jù)表數(shù)量。

2、根據(jù)條件查詢數(shù)據(jù)表,生成 DataSet ,遍歷 Tables ,生成對應的二維數(shù)組集合,將數(shù)據(jù)輸出到對應的WORD表格中。

3、按約定,WORD表格的數(shù)量應該大于等于 DataSet 里的 Tables 數(shù)量。

4、按參數(shù)設定對應的WORD表格ID序號,如參數(shù)設定為2,則表示輸出到WORD文件中的第二個表格中。(注意:WORD表格序號以1為開始)

在輸出寫入的方式中,我們約定有兩種方式:

一為覆蓋式寫入(即已預知數(shù)據(jù)輸出模式)舉例如下圖:

C# 讀取二維數(shù)組集合輸出到Word預設表格,微軟Office計算中心,c#,word,開發(fā)語言

二為動態(tài)式寫入(即未知數(shù)據(jù)行數(shù)量)舉例如下圖:

C# 讀取二維數(shù)組集合輸出到Word預設表格,微軟Office計算中心,c#,word,開發(fā)語言

范例運行環(huán)境

操作系統(tǒng): Windows Server 2019 DataCenter

操作系統(tǒng)上安裝 Office Word 2016

數(shù)據(jù)庫:Microsoft SQL Server 2016

.net版本:?.netFramework4.7.1 或以上

開發(fā)工具:VS2019 ?C#

配置Office DCOM

配置方法可參照我的文章《C# 讀取Word表格到DataSet》進行處理和配置。

實現(xiàn)代碼

組件庫引入

?

核心代碼

DataSet轉二維數(shù)組

public object[,] DataSetToObjectData(DataSet ds,int TableId,bool hastitle),該方法提供3個參數(shù),DataSet數(shù)據(jù)集、指定表索引、導出是否包含標題列名稱。

		public object[,] DataSetToObjectData(DataSet ds,int TableId,bool hastitle)
		{
			ArrayList rowdata = new ArrayList();
			int _fieldcount=ds.Tables[TableId].Columns.Count;
			Object[] colvalues = new Object[_fieldcount];
			for(int i=0;i<_fieldcount;i++)
			{
				colvalues[i]=ds.Tables[TableId].Columns[i].ColumnName;
			}
			if(hastitle)
				rowdata.Add(colvalues);
			for(int i=0;i<ds.Tables[TableId].Rows.Count;i++)
			{
				Object[] values = new Object[_fieldcount];
				values=ds.Tables[TableId].Rows[i].ItemArray;
				rowdata.Add(values);
				RowsCount++;
			}
			object[,] rv=new object[rowdata.Count,_fieldcount];
			for(int i=0;i<rowdata.Count;i++)
			{
				for(int j=0;j<_fieldcount;j++)
				{
					rv[i,j]=((object[])rowdata[i])[j];
				}
			}
			return rv;
		}
導出寫入WORD表格

public string DataSetToWordTables(string _filename,int[,] _drawtype,object[] _datas),該方法提供3個參數(shù),使用的WORD模板文件路徑、寫入配置(包括要寫入的WORD表格ID,寫入方式:0為覆蓋;1為從第二行動態(tài)追加;3為從第一行動態(tài)追加)、對應的二維數(shù)組集合。

public string DataSetToWordTables(string _filename,int[,] _drawtype,object[] _datas)        {
            Object Nothing = System.Reflection.Missing.Value;
            object filename = _filename;
            //創(chuàng)建一個名為WordApp的組件對象
            Word.Application WordApp = new Word.Application();
            //創(chuàng)建一個名為WordDoc的文檔對象
            WordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;

            Word.Document WordDoc = WordApp.Documents.Open(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);

            WordDoc.SpellingChecked = false;//關閉拼寫檢查

            WordDoc.ShowSpellingErrors = false;//關閉顯示拼寫錯誤提示框

				for(int i=_drawtype.GetLength(0)-1;i>=0;i--)
				{
					int _tableid=_drawtype[i,0];
					int _draw=_drawtype[i,1];
					object[,] r_datas=(object[,])_datas[i];
					int _rowscount=r_datas.GetLength(0);
                    if (_rowscount == 0)
                    {
                        WordDoc.Tables[_tableid].Delete();
                        continue;
                    }
                    int startrowid = 2;
                    if (_draw == 3)
                    {
                        startrowid = 1;
                    }
					if(_draw==1||_draw==3)
					{
						object _row=(object)WordDoc.Tables[_tableid].Rows[startrowid];
						for(int j=0;j<_rowscount-1;j++)
						{
							WordDoc.Tables[_tableid].Rows.Add(ref _row);

						}
					}
                    for (int k = 0; k < r_datas.GetLength(0); k++)
					{
						for(int m=0;m<r_datas.GetLength(1);m++)
						{
                            WordDoc.Tables[_tableid].Cell(k + startrowid, m + 1).Range.Text = r_datas[k, m].ToString();
                        }
					}
				}

			WordDoc.Save();
            WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
			//關閉WordApp組件對象
			WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
    return "";
}
調(diào)用舉例

如下為示例代碼:

string _filename=@"x:\test.docx";
int[,] _drawtype=new int[2,2];
_drawtype[0,0]=1;  //寫入WORD第一個表格
_drawtype[0,1]=0;  //覆蓋式寫入

_drawtype[1,0]=2;  //寫入WORD第二個表格
_drawtype[1,1]=1;  //動態(tài)追加行寫入

object[] _datas=new object[2];
DataSet ds=getDataSet(); //獲取DataSet對象
_datas[0]=DataSetToObjectData(ds,0,false); //獲取DataSet Tables[0]的二維數(shù)組數(shù)據(jù)
_datas[1]=DataSetToObjectData(ds,1,false); //獲取DataSet Tables[1]的二維數(shù)組數(shù)據(jù)

string result=DataSetToWordTables(_filename,_drawtype,_datas);  //寫入Word表格        

小結

1、核心代碼中對無數(shù)據(jù)的表格采取了刪除WORD表格的操作。

2、預設表格的優(yōu)點在于所見即所得,樣式設計簡單化,便于理解輸出,我們還可以采用關鍵字定位并動態(tài)添加WORD表格的形式進行輸出,來實現(xiàn)更加復雜的樣式等。

3、核心代碼中輸出的起始行為第2行,根據(jù)設置也可以為第1行。如果我們設計的表格比較復雜(如包括合并單元格等),則可以對 _drawtype進行改造,增加一個參數(shù),用于指定從第幾行開始進行輸出。

這些代碼我們提供了一些操作WORD相關的關鍵方法,這里僅作參考,歡迎大家評論指教!文章來源地址http://www.zghlxwxcb.cn/news/detail-842533.html

到了這里,關于C# 讀取二維數(shù)組集合輸出到Word預設表格的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C#:對word中表格進行復制、粘貼并且替換內(nèi)容

    在我上一篇對于word開發(fā)講述的文章中對word開發(fā)進行了一些介紹,今天接著上一篇文章再介紹一下如何復制word中的表格,然后進行粘貼的操作,最后再介紹一下如何替換表格中的文本。 首先如果想要復制word中的表格自然然需要先實例化doc,這個就不寫了。不會的伙伴可以去

    2024年02月09日
    瀏覽(21)
  • c# 操作word中的表格 批量復制和批量插入

    用的是windows自帶的dll包,沒有引用第三方 批量插入表格后,原理就是整個文檔會從前到后編制表格索引,從一開始意思是前面序號為1.2.3表格,1復制3個在后面,那么原先的2表格序號就標為2+3=5!為表格設置各種值也是按這個序號來!

    2024年02月08日
    瀏覽(29)
  • 將一個簡單的矩陣(二維數(shù)組)轉置 并輸出(C語言)

    描述: 輸入一個3行4列的矩陣(二維數(shù)組)a,接著將矩陣a轉置為矩陣b,然后輸出矩陣b。 輸入: 輸入3行,每行輸入4個整數(shù),整數(shù)之間用空格隔開。 輸出: 輸出4行,每行輸出3個整數(shù),整數(shù)之間用空格隔開。 輸入樣例 1:? 輸出樣例 1:

    2024年02月07日
    瀏覽(17)
  • c#關于文件夾/文件/文本讀取遍歷,寫入還有表格的讀取的一些方法

    c#關于文件夾/文件/文本讀取遍歷,寫入還有表格的讀取的一些方法

    c#遍歷文件夾下的各種文件 將一些log寫入到文本文件中: fs.Seek(offset, whence);移動文件讀取的指針到指定位置 offset:開始的偏移量,也就是代表需要移動偏移的字節(jié)數(shù) whence:給offset參數(shù)一個定義,表示要從哪個位置開始偏移;0代表從文件開頭開始算起,1代表從當前位置開始

    2024年02月01日
    瀏覽(28)
  • 利用二維數(shù)組輸出一個3*4的矩陣的最大值及其所在的行、列

    利用二維數(shù)組輸出一個3*4的矩陣的最大值及其所在的行、列

    利用二維數(shù)組輸出一個3*4的矩陣的最大值及其所在的行、列 要輸出矩陣如下: 核心:定義一個最大值的標志,一般我們把數(shù)組的第一個位置的數(shù)賦給最大值標志,然后遍歷二維數(shù)組,每遍歷到一個數(shù)時,將其與標志進行比較,若大于最大值標志,則將其的值賦給最大值標志

    2024年01月23日
    瀏覽(42)
  • springboot yml文件自定義配置的讀取、使用 字符串 數(shù)組 對象 集合

    springboot yml文件自定義配置的讀取、使用 字符串 數(shù)組 對象 集合

    .yml 配置 controller代碼 實體類 Student.java Users.java User.java 方式一、 http://localhost:9801/test/test1 方式二、 http://localhost:9801/test/test2 方式三、 http://localhost:9801/test/test3 參考: SpringBoot:yml文件詳解-CSDN博客 https://www.jb51.net/article/216769.htm

    2024年02月05日
    瀏覽(25)
  • C#入門及進階|數(shù)組和集合(十):Queue類

    ????????在某種線性表中,需要加入的元素總是插入到線性表的末端,且總是從線性表的頭部取出或刪除元素,我們把這種線性表稱為隊列。 ????????在C#中,通過Queue集合來封裝對隊列的操作,在隊列中對元素的操作遵循“先進先出”的原則。Queue類常用的屬性和方法

    2024年02月19日
    瀏覽(28)
  • springboot讀取yml文件中的list列表、數(shù)組、map集合和對象方法實例

    springboot讀取yml文件中的list列表、數(shù)組、map集合和對象方法實例

    目錄前言application.yml定義list集合application.yml定義數(shù)組類型總結 前言 springboot配置文件yml類型簡單的風格,十分受大家的歡迎,支持字符string類型,支持列表list類型,支持集合map類型,支持數(shù)組array類型,支持類對象類型,下面我們來實戰(zhàn)下這些形式的配置如何取值 applicatio

    2024年02月09日
    瀏覽(87)
  • Word控件Aspose.Words教程:使用 C# 讀取 SXC 和 FODS 文件

    Aspose.Words是一種高級Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務。API支持生成,修改,轉換,呈現(xiàn)和打印文檔,而無需在跨平臺應用程序中直接使用Microsoft Word。 Aspose支持流行文件格式處理,并允許將各類文檔導出或轉換為固定布局文件格式和最常用的圖像/多媒體格

    2024年02月10日
    瀏覽(24)
  • C# 讀取帶CheckBox復選框控件的表格-并集成到Windows Service里面

    C# 讀取帶CheckBox復選框控件的表格-并集成到Windows Service里面

    最近的項目要求讀取xls文件內(nèi)的單元格,并且單元格旁邊會有復選框標識類型。 搜了下只有java的POI有例子,NOPI看項目文檔好像是沒有實現(xiàn)讀取控件的功能。 java實現(xiàn) POI? POI如何解析出excel 中復選框是否被選中 https://blog.csdn.net/qq_29832217/article/details/104413475? C#導出 Excel 時,

    2024年02月14日
    瀏覽(80)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包