cabral_ea_ca
New Member
- Joined
- Nov 19, 2013
- Messages
- 2
I have a c# program to printout a specific worksheet as seen below
-------
Microsoft.Office.Interop.Excel.Application w_ExcelAppl =
new Microsoft.Office.Interop.Excel.Application();
w_ExcelAppl.DisplayAlerts = false;
w_ExcelAppl.Visible = false;
w_ExcelAppl.AskToUpdateLinks = false;
w_ExcelAppl.EnableEvents = false;
object w_Optional1 = Type.Missing;
bool w_UpdtLink = false;
bool w_ReadOnly = true;
Workbook w_ExcelWrkbook = w_ExcelAppl.Workbooks.Open(
".\\ExcelSample.xlsx",
w_UpdtLink,
w_ReadOnly,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1);
int w_Idx = 1;
Worksheet w_ExcelWrksheet = (Worksheet)w_ExcelWrkbook.Worksheets.get_Item(w_Idx);
foreach (Name w_Name in w_ExcelWrksheet.Names)
{
MessageBox.Show(w_Name.NameLocal, w_Name.Name) ;
}
object w_Optional2 = Type.Missing;
w_ExcelWrksheet.PrintOut(w_Optional2, w_Optional2, w_Optional2, w_Optional2, w_Optional2, w_Optional2, w_Optional2, w_Optional2);
bool w_Save = false;
object w_Optional3 = Type.Missing;
w_ExcelWrkbook.Close(w_Save, w_Optional3, w_Optional3);
w_ExcelAppl.Quit();
w_ExcelAppl = null;
-------
The worksheet has a defined print area and is printed correctly in an English Windows 7 with a English Excel installed.
When I run the above code in a French Windows 7 with a French Excel installed, the print area is no longer respected and the whole sheet is printed.
-------
Microsoft.Office.Interop.Excel.Application w_ExcelAppl =
new Microsoft.Office.Interop.Excel.Application();
w_ExcelAppl.DisplayAlerts = false;
w_ExcelAppl.Visible = false;
w_ExcelAppl.AskToUpdateLinks = false;
w_ExcelAppl.EnableEvents = false;
object w_Optional1 = Type.Missing;
bool w_UpdtLink = false;
bool w_ReadOnly = true;
Workbook w_ExcelWrkbook = w_ExcelAppl.Workbooks.Open(
".\\ExcelSample.xlsx",
w_UpdtLink,
w_ReadOnly,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1,
w_Optional1);
int w_Idx = 1;
Worksheet w_ExcelWrksheet = (Worksheet)w_ExcelWrkbook.Worksheets.get_Item(w_Idx);
foreach (Name w_Name in w_ExcelWrksheet.Names)
{
MessageBox.Show(w_Name.NameLocal, w_Name.Name) ;
}
object w_Optional2 = Type.Missing;
w_ExcelWrksheet.PrintOut(w_Optional2, w_Optional2, w_Optional2, w_Optional2, w_Optional2, w_Optional2, w_Optional2, w_Optional2);
bool w_Save = false;
object w_Optional3 = Type.Missing;
w_ExcelWrkbook.Close(w_Save, w_Optional3, w_Optional3);
w_ExcelAppl.Quit();
w_ExcelAppl = null;
-------
The worksheet has a defined print area and is printed correctly in an English Windows 7 with a English Excel installed.
When I run the above code in a French Windows 7 with a French Excel installed, the print area is no longer respected and the whole sheet is printed.