русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Приклад класу роботи з Excel на мові С#.


Дата додавання: 2014-10-07; переглядів: 1120.


 

using System;

using System.Drawing;

using System.Globalization;

using System.Reflection;

using System.Runtime.InteropServices;

using System.Windows.Forms;

 

using Excel = Microsoft.Office.Interop.Excel;

 

namespace SaturnRep

{

public class RepExcel : IDisposable

{

public Excel.Application excelapp;

Excel.Workbooks excelappworkbooks;

Excel.Workbook excelappworkbook;

private Excel.Sheets excelsheets; // лист в екселе

private Excel.Worksheet excelworksheet; // ячейка

private Excel.Range excelcells; // диапазон ячеек

 

// Конструктор

public RepExcel()

{

excelapp = new Excel.Application();

excelapp.Visible = false;

}

 

// Деструктор

public void Dispose()

{

// Release COM objects (very important!)

if (excelapp != null)

System.Runtime.InteropServices.Marshal.ReleaseComObject(excelapp);

 

if (excelappworkbooks != null)

System.Runtime.InteropServices.Marshal.ReleaseComObject(excelappworkbooks);

 

if (excelappworkbook != null)

System.Runtime.InteropServices.Marshal.ReleaseComObject(excelappworkbook);

if (excelsheets != null)

System.Runtime.InteropServices.Marshal.ReleaseComObject(excelsheets);

if (excelworksheet != null)

System.Runtime.InteropServices.Marshal.ReleaseComObject(excelworksheet);

if (excelcells != null)

System.Runtime.InteropServices.Marshal.ReleaseComObject(excelcells);

 

excelapp = null;

excelappworkbooks = null;

excelappworkbook = null;

excelsheets = null;

excelworksheet = null;

excelcells = null;

GC.Collect();

 

ClassReportLog.error("RepExcel", "Dispose OK", 3, true );

// GC.GetTotalMemory(true);

}

 

 

//************************************************************************************************************************************************

// Coхранение книги с заданным именем

 

public void CreateNewBook(string fullPathAndFilename)

{

try

{

excelapp.SheetsInNewWorkbook = 5;

excelapp.Workbooks.Add(Type.Missing);

excelapp.DisplayAlerts = false;

//Получаем набор ссылок на объекты Workbook (на созданные книги)

excelappworkbooks = excelapp.Workbooks;

//Получаем ссылку на книгу 1 - нумерация от 1

excelappworkbook = excelappworkbooks[1];

 

excelsheets = excelappworkbook.Worksheets;

//Получаем ссылку на лист 1

excelworksheet = (Excel.Worksheet)excelsheets.get_Item(1);

excelworksheet.Name = "Saturn Data";

 

excelappworkbook.Saved = true;

excelappworkbook.SaveAs(fullPathAndFilename, Excel.XlFileFormat.xlExcel7, //object FileFormat

Type.Missing, //object Password

Type.Missing, //object WriteResPassword

Type.Missing, //object ReadOnlyRecommended

Type.Missing, //object CreateBackup

Excel.XlSaveAsAccessMode.xlNoChange,//XlSaveAsAccessMode AccessMode

Type.Missing, //object ConflictResolution

Type.Missing, //object AddToMru

Type.Missing, //object TextCodepage

Type.Missing, //object TextVisualLayout

Type.Missing);

 

excelapp.Workbooks.Close();

excelapp.Quit();

ClassReportLog.info("CreateNewBook " + fullPathAndFilename, "OK", 3, true);

}

catch (Exception ex)

{

ClassReportLog.error("CreateNewBook " + fullPathAndFilename, ex.Message, 3, true);

excelapp.Quit();

Dispose();

 

}

 

}

public void OpenBook(string fullPathAndFilename)

{

try

{

 

excelapp.Workbooks.Open(fullPathAndFilename,

Type.Missing, false, Type.Missing, Type.Missing,

Type.Missing, Type.Missing, Type.Missing, Type.Missing,

Type.Missing, Type.Missing, Type.Missing, Type.Missing,

Type.Missing, Type.Missing);

ClassReportLog.info( "OpenBook " + fullPathAndFilename, "OK",3,true);

 

}

catch(Exception ex) { ClassReportLog.error( "OpenBook", ex.Message,3, true);}

 

}

public void CloseBook()

{

try

{

excelapp.Workbooks.Close();

excelapp.Quit();

ClassReportLog.error( "CloseBook", "OK", 3, true);

}

catch (Exception ex)

{

ClassReportLog.error("CloseBook", ex.Message, 3, true);

}

}

public void Save(string fullPathAndFilename)

{

try

{

excelappworkbooks = excelapp.Workbooks;

//Получаем ссылку на книгу 1 - нумерация от 1

excelappworkbook = excelappworkbooks[1];

 

excelappworkbook.Saved = false;

excelappworkbook.Save(); /*As(fullPathAndFilename, Excel.XlFileFormat.xlExcel8, //object FileFormat

Type.Missing, //object Password

Type.Missing, //object WriteResPassword

false, //object ReadOnlyRecommended

Type.Missing, //object CreateBackup

Excel.XlSaveAsAccessMode.xlNoChange,//XlSaveAsAccessMode AccessMode

Type.Missing, //object ConflictResolution

Type.Missing, //object AddToMru

Type.Missing, //object TextCodepage

Type.Missing, //object TextVisualLayout

Type.Missing);

* */

}

catch(Exception ex) {

ClassReportLog.error("Save", ex.Message, 3, true);

// MessageBox.Show("Возникла проблема при сохранении файла. " + ex.Message);

}

}

 

 

public void SaveAs(string fullPathAndFilename)

{

try

{

excelappworkbooks = excelapp.Workbooks;

//Получаем ссылку на книгу 1 - нумерация от 1

excelappworkbook = excelappworkbooks[1];

 

excelappworkbook.Saved = true;

 

excelappworkbook.SaveAs(fullPathAndFilename, Excel.XlFileFormat.xlExcel7, //object FileFormat

Type.Missing, //object Password

Type.Missing, //object WriteResPassword

false, //object ReadOnlyRecommended

Type.Missing, //object CreateBackup

Excel.XlSaveAsAccessMode.xlNoChange,//XlSaveAsAccessMode AccessMode

Type.Missing, //object ConflictResolution

Type.Missing, //object AddToMru

Type.Missing, //object TextCodepage

Type.Missing, //object TextVisualLayout

Type.Missing);

ClassReportLog.info("SaveAs " + fullPathAndFilename, "OK", 3, true);

}

catch(Exception ex)

{

ClassReportLog.error("SaveAs " + fullPathAndFilename, ex.Message, 3, true);

// MessageBox.Show("Возникла проблема при сохранении файла. " + ex.Message);

}

 

}

 

 

public void SetValue(string pageName, string address, string StrValues, string typeValue, bool isBold = false) // "A10", "значение"

{

 

excelappworkbooks = excelapp.Workbooks;

//Получаем ссылку на книгу 1 - нумерация от 1

excelappworkbook = excelappworkbooks[1];

excelsheets = excelappworkbook.Worksheets;

 

try

{

excelworksheet = (Excel.Worksheet)excelsheets[pageName];

//MessageBox.Show("Страница найдена");

}

catch(Exception ex) {

ClassReportLog.error("SetValue page - " + pageName + " address - " + address + " Value - " + StrValues, ex.Message, 3, true);

// MessageBox.Show("Страница не найдена");

excelsheets.Add();

excelworksheet = (Excel.Worksheet)excelsheets.get_Item(excelsheets.Count);

excelworksheet.Name = pageName;

 

}

try

{

excelcells = excelworksheet.get_Range(address, address);

if (typeValue == "double") excelcells.Value2 = Convert.ToDouble(StrValues, CultureInfo.GetCultureInfo("en-US").NumberFormat); //Convert.ToDouble(StrValues);

if (typeValue == "string") excelcells.Value2 = StrValues;

if (isBold) excelcells.EntireRow.Font.Bold = true;

ClassReportLog.info("SetValue page - " + pageName + " address - " + address + " Value - " + StrValues, " OK",3, true);

}

catch (Exception ex)

{

ClassReportLog.error("SetValue page - " + pageName + " address - " + address + " Value - " + StrValues, ex.Message, 3, true);

}

}

 

public string GetValue(string pageName, string address)

{

excelappworkbooks = excelapp.Workbooks;

//Получаем ссылку на книгу 1 - нумерация от 1

excelappworkbook = excelappworkbooks[1];

excelsheets = excelappworkbook.Worksheets;

excelworksheet = (Excel.Worksheet)excelsheets[pageName];

excelcells = excelworksheet.get_Range(address, address);

return Convert.ToString(excelcells.Value2);

}

 

public void HidenRow(string pageName, int indexRow)

{

excelappworkbooks = excelapp.Workbooks;

//Получаем ссылку на книгу 1 - нумерация от 1

excelappworkbook = excelappworkbooks[1];

excelsheets = excelappworkbook.Worksheets;

//Получаем ссылку на лист

excelworksheet = (Excel.Worksheet)excelsheets[pageName];

 

excelworksheet.Range["A"+Convert.ToString(indexRow),"A"+Convert.ToString(indexRow)].Rows.Hidden = true;

}

 

public void DisplayLine(string pageName, int indexRow)

{

excelappworkbooks = excelapp.Workbooks;

//Получаем ссылку на книгу 1 - нумерация от 1

excelappworkbook = excelappworkbooks[1];

excelsheets = excelappworkbook.Worksheets;

//Получаем ссылку на лист

excelworksheet = (Excel.Worksheet)excelsheets[pageName];

excelworksheet.Range["A" + Convert.ToString(indexRow), "A" + Convert.ToString(indexRow)].Rows.Hidden = false;

}

}

}

 

 

Питання для самоконтролю

1. Опишіть принципи запуску Excel із проектів Delphi

2. Опишіть принципи створення книги Excel на основі шаблону.

3. Опишіть принципи збереження і відкриття книг Excel в проектах Delphi.

4. Опишіть принципи закриття книг Excel та закриття програми Excel в проектах Delphi.

5. Опишіть принцип роботи з аркушами Microsoft Excel. Приклад.

6. Яка команда дозволяє замінити старий текст на аркуші Excel на новий текст? Приклад.

7. Які властивості й методи гнізд ви знаєте для роботи з діапазоном гнізд Excel?

8. Яка властивість дозволяє вводити у чарунку аркуша Excel текст формули? Приклад.

9. Які особливості треба враховувати при введенні формули в чарунку Excel при створенні програм в Delphi?

10. Які властивості використовуються для форматування гнізд на аркуші Excel при створенні програм в Delphi?

 


 

 

Лекція №17

Тема: Документування програмних продуктів. Розробка систем допомоги та підказок у програмах.

Мета: Придбати знання у строренні довідникових систем при розробці програмного забезпечення.

Перелік питань, що розглядаються на лекції:

1. Види довідкових систем

2. Формати довідників

3. Створення довідки у форматі HTML Help

4. Створення контекстної довідки

5. Інтеграція довідкового файлу в додаток

 


<== попередня лекція | наступна лекція ==>
Форматування чарунок | Види довідкових систем


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн