Python Forum
How to keep columns header on excel without change after export data to excel file?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to keep columns header on excel without change after export data to excel file?
#1
I work on sql server 2017 I run script depend on python language v 3.10 .

I need to export data to excel fileStudentExport.xlsx already exist and keep header wihout change after export.

header of excel file StudentExport.xlsx before export data to it as below

StudentId,StudentName
after run script query to export data to StudentExport.xlsx Header changed to

StudentId,Name
my issue is header changed from column name StudentName to Name (exist on sql)

Exactly I need Export data to excel StudentExport.xlsx and depend on header exist on excel file

not depend on columns header of table exist on Sql server .

I export data to excel by this line

InputDataSet.to_excel(FullFilePath,sheet_name=TableName.split(".")[-1],index=False)
I try to change it to keep header on excel file StudentExport.xlsx without change as below

InputDataSet.to_excel(FullFilePath,sheet_name=TableName.split(".")[-1], header=False, startrow= 1,index=False)
but it give me data without header and header row blank

blank header
1 ahmed
so can any one help me to export data to excel file without change or overwrite header ?

Notes Not practical way to change column name from Name to StudentName on sql server table create view to use it as excel header .

expected result

StudentId StudentName
1 ahmed
script Query I run it as below for lookup

----drop table #FinalExportList

declare @ExportPath NVARCHAR(MAX)='G:\ImportExportExcel'
declare @FixedPath NVARCHAR(MAX)='G:\ExportFiles\StudentExport.xlsx'
CREATE TABLE #FinalExportList(TableCount INT IDENTITY(1,1),Cols NVARCHAR(MAX),TableName NVARCHAR(200))
insert into #FinalExportList(TableName,Cols)
values
('dbo.students','TRY_CONVERT(VARCHAR(MAX),StudentId) AS [StudentId], Name')

DECLARE
@TableName NVARCHAR(200)
,@SQL NVARCHAR(MAX) = N''
,@PythonScript NVARCHAR(MAX) = N''
,@ExportFilePath NVARCHAR(MAX) = N''


SELECT @ExportPath = CASE WHEN RIGHT(@ExportPath,1) = '\' THEN @ExportPath ELSE CONCAT(@ExportPath,'\') END


-- Just for testing purpose top 10 records are selected
SELECT @SQL = CONCAT('SELECT TOP 10 ',Cols,' FROM ',TableName,';')
,@TableName = TableName
FROM #FinalExportList


SET @PythonScript = N'import shutil
FullFilePath = ExcelFilePath+"StudentExport.xlsx"
shutil.copy(FixedPath,ExportPath)
InputDataSet.to_excel(FullFilePath,sheet_name=TableName.split(".")[-1],index=False)
'f

exec sp_execute_external_script
@language = N'Python'
,@script = @PythonScript
,@input_data_1 = @SQL
,@params = N'@ExcelFilePath NVARCHAR(MAX), @TableName NVARCHAR(200),@FixedPath NVARCHAR(MAX),@ExportPath NVARCHAR(MAX)'
,@ExcelFilePath = @ExportPath -- file path where Excel files are placed
,@TableName = @TableName
,@[email protected]
,@[email protected]
sql server table

CREATE TABLE [dbo].[students](
 [StudentId] [int] NOT NULL,
 [StudentName] [varchar](50) NULL,
  CONSTRAINT [PK_students] PRIMARY KEY CLUSTERED 
 (
 [StudentId] ASC
 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
 ) ON [PRIMARY]
 GO
 INSERT [dbo].[students] ([StudentId], [StudentName]) VALUES (1, N'ahmed')
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  deleting columns in CSV file astral_travel 8 186 25 minutes ago
Last Post: astral_travel
  BCP Export sql data to csv mg24 2 235 Nov-20-2022, 11:45 AM
Last Post: Pedroski55
  Replace columns indexes reading a XSLX file Larry1888 2 254 Nov-18-2022, 10:16 PM
Last Post: Pedroski55
  Need Help! Pandas EXCEL PIVOT psb3958 1 185 Nov-13-2022, 10:37 PM
Last Post: deanhystad
  Appending a row of data in an MS Excel file azizrasul 3 271 Nov-06-2022, 05:17 PM
Last Post: azizrasul
  Openpyxl manipulate excel write formula SamLiu 0 254 Nov-04-2022, 03:00 PM
Last Post: SamLiu
  Creating csv files from Excel file azizrasul 40 996 Nov-03-2022, 08:33 PM
Last Post: azizrasul
  Deleting rows based on cell value in Excel azizrasul 11 559 Oct-19-2022, 02:38 AM
Last Post: azizrasul
  Convert Excel file into csv with Pipe symbol.. mg24 4 302 Oct-18-2022, 02:59 PM
Last Post: Larz60+
  Moving data from one Excel to another and finding maximum profit azizrasul 7 391 Oct-06-2022, 06:13 PM
Last Post: azizrasul

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020