//Объединение ячеек по Горизонтали
//ПО параметрам gN(Начало) и gK(Конец)
table.Cell(i, iColsgN).Merge(table.Cell(i, iColsgK));
//Если объединение начинается с первой ячейки, то помечаем жирным шрифтом
if (iColsgN==1)
{
// Шрифт жирный
//пример table.Cell(4, 1).Range.Bold = 1;
table.Cell(i, 1).Range.Bold = 1;
}
string connectionString = @"Data Source=<b>Domen\Moiseev_AN</b>;Initial Catalog=JobBase;Integrated Security=True";
string connectionString = @"Data Source=<b>Domen\Syduakina</b>;Initial Catalog=JobBase;Integrated Security=True";
USE [Test]
GO
/****** Object: Table [dbo].[MainTabMatrix] Script Date: 04.08.2020 17:23:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MainTabMatrix](
[main_id] [int] IDENTITY(1,1) NOT NULL,
[name_site] [nvarchar](max) NULL,
CONSTRAINT [PK_MainTabMatrix] PRIMARY KEY CLUSTERED
(
[main_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
USE [Test]
GO
/****** Object: Table [dbo].[TasksM] Script Date: 04.08.2020 17:22:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TasksM](
[id_task] [int] IDENTITY(1,1) NOT NULL,
[NameTask] [nvarchar](max) NULL,
[main_id] [int] NULL,
CONSTRAINT [PK_TasksM] PRIMARY KEY CLUSTERED
(
[id_task] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[TasksM] WITH CHECK ADD CONSTRAINT [FK_TasksM_MainTabMatrix] FOREIGN KEY([main_id])
REFERENCES [dbo].[MainTabMatrix] ([main_id])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[TasksM] CHECK CONSTRAINT [FK_TasksM_MainTabMatrix]
GO
USE [Test]
GO
/****** Object: Table [dbo].[Duties] Script Date: 04.08.2020 17:23:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Duties](
[duties_id] [int] IDENTITY(1,1) NOT NULL,
[NameDuties] [nvarchar](max) NULL,
[NumerDuties] [varchar](15) NULL,
[id_task] [int] NULL,
CONSTRAINT [PK_Duties] PRIMARY KEY CLUSTERED
(
[duties_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[Duties] WITH CHECK ADD CONSTRAINT [FK_Duties_TasksM] FOREIGN KEY([id_task])
REFERENCES [dbo].[TasksM] ([id_task])
ON UPDATE CASCADE
GO
ALTER TABLE [dbo].[Duties] CHECK CONSTRAINT [FK_Duties_TasksM]
GO
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PHPExcel Reader Example #20</title>
</head>
<body>
<?php
function readExelFile($filepath){
///var/www/add_woker/INFORM
require_once($_SERVER['DOCUMENT_ROOT'] . '/Classes/PHPExcel/IOFactory.php');
$ar=array(); // инициализируем массив
$inputFileType = PHPExcel_IOFactory::identify($filepath); // узнаем тип файла, excel может хранить файлы в разных форматах, xls, xlsx и другие
$objReader = PHPExcel_IOFactory::createReader($inputFileType); // создаем объект для чтения файла
$objPHPExcel = $objReader->load($filepath); // загружаем данные файла в объект
$ar = $objPHPExcel->getActiveSheet()->toArray(); // выгружаем данные из объекта в массив
return $ar; //возвращаем массив
}
$file_path_excel = 'x.xlsx';
$ar=readExelFile($file_path_excel);
echo'
<table align="center" width="100%" border="1" style=" border: 1px solid black; border-collapse: collapse;">
<thead>
<tr>
<th scope="col">№</th>
<th scope="col">№</th>
</tr>
</thead>
<tbody>';
global $i;
//Выводим все записи
foreach($ar as $ar_colls){
$zapis_1 = $ar_colls[1];//Столбец номер
// Принимает значение true, потому что $var пусто
if (empty($zapis_1)) {
//echo '$zapis_1 или 0, или пусто, или вообще не определена';
}
else{
//Разделяем строки
preg_match_all('/\d{1,2}\.\d{1,2}\.\d{1,2}.+?\./', $zapis_1, $matches);
//preg_match_all('/\d{1,2}\.\d{1,2}\.\d{1,2}.\d{1,2}.+?\./', $zapis_1, $matches);
//Количество подпунктов в массиве
$kol=count($matches, COUNT_RECURSIVE);
$kol=$kol-1;
//Если пунктов больше одного
if ($kol>1)
{
$row=0;//Значение строки первого двухмерного массива
for ($col = 0; $col < $kol; $col++)
{
$i++; //Для нумерации записей - счётчик
echo"<tr>";
echo"<th scope='row'>$i</th>";
echo "<td>".$matches[$row][$col]."</td>";
echo"</tr>";
}
}
// иначе если нет вхождений в массив (пунктов) выводим строку
else{
//Определяем есть ли в строке цифры
preg_match("/[\d]+/",$zapis_1,$match);
//Если есть просто выводим строку
if (strlen($match[0]) > 0)
//echo 'Есть';
{
//echo 'Содержит как минимум одну букву и одну цифру';
$i++; //Для нумерации записей - счётчик
echo"<tr>";
echo"<th scope='row'>$i</th>";
echo"<td>$zapis_1</td>";
echo"</tr>";
}
//если в строке нет цифр то выделяем шрифт цветом
else
{
$i++; //Для нумерации записей - счётчик
echo"<tr>";
echo"<th scope='row'>$i</th>";
echo"<td><b><i><font color='#0000ff'>$zapis_1</font></b></i></td>";
echo"</tr>";
}
}
}
}
echo'</tbody></table>';
?>