@dovid כתב בקבלת רשימת ערכים יחודיים בעמודה באקסל:
תבדוק אם עובד לך פונקציה בשם UNIQUE.
זה עובד מ2019 וב365
@dovid כתב בקבלת רשימת ערכים יחודיים בעמודה באקסל:
תבדוק אם עובד לך פונקציה בשם UNIQUE.
זה עובד מ2019 וב365
יש לי נתונים עם כ20 עמודות, ושעשויים להכיל אף 20,000 שורות. כרגע בטסטים יש לי כ1000 רשומות בלבד, ולוקח לפקד להיטען כ15 שניות.. אני מבין שזה לא צריך להיות ככה..
לאחר עיון כאן
https://help.syncfusion.com/wpf/datagrid/data-virtualization
וכאן
https://support.syncfusion.com/kb/article/6938/how-to-improve-performance-when-loading-grid-with-records-and-columns-in-wpf-datagrid
הוספתי את "EnableDataVirtualization="True אבל "UseDrawing="Default לא מתאים (וגם לא ראיתי שעזר..) כי הוא מרנדר את העברית משמאל לימין כמו כתב מראה.. ועדיין לא נושעתי..
אותו קוד טוען את אותם הנתונים לפקד DataGrid רגיל בחלקיק שניה..
מצורף הxaml (הורדתי חלק מהעמודות טקסט או צ'ק בוקס, כשהשארתי 2 עמודות בלבד, זה נטען לאחר 3 שניות.. עדיין הרבה ל2 עמודות בלבד..)
<syncfusion:SfDataGrid x:Name="dataGrid2" Margin="43,153,43,130" AutoGenerateColumns="False"
AllowFiltering="True" AllowEditing="True" FontSize="14"
AllowResizingColumns="True" EnableDataVirtualization="True" AllowDraggingColumns="True"
MouseDoubleClick="DataGrid2_MouseDoubleClick" HeaderStyle="{StaticResource headerStyle}"
AlternatingRowStyle="{StaticResource alternatingRowStyle}" AlternationCount="2"
RowStyle="{StaticResource RowStyle}">
<syncfusion:SfDataGrid.Columns>
<syncfusion:GridCheckBoxColumn HeaderText="בחר" MappingName="selectTemp" Width="50"
IsReadOnly="False" AllowEditing="True" />
<syncfusion:GridTextColumn HeaderText="איידי" MappingName="id" Width="60"
IsReadOnly="True" AllowEditing="False" />
<syncfusion:GridCheckBoxColumn HeaderText="פעיל" MappingName="active" Width="40"
IsReadOnly="True" AllowEditing="False" />
<syncfusion:GridTextColumn HeaderText="שם" MappingName="name" Width="90"
IsReadOnly="True" AllowEditing="False" />
<syncfusion:GridTemplateColumn HeaderText="רייטינג" MappingName="rating" Width="150">
<syncfusion:GridTemplateColumn.CellTemplate>
<DataTemplate>
<local:StarRatingControl x:Name="starRatingControl" Rating="{Binding rating}"
IsHitTestVisible="False" />
</DataTemplate>
</syncfusion:GridTemplateColumn.CellTemplate>
</syncfusion:GridTemplateColumn>
</syncfusion:SfDataGrid.Columns>
</syncfusion:SfDataGrid>
זה הקוד שאיתו אני טוען את הנתונים לפקד בפתיחת הטופס
private SQLiteDataAdapter adapter;
private DataTable dataTable;
private DataView dataView;
public async void LoadData()
{
UpdateStatusBar("טוען נתונים..");
try
{
await Task.Run(() =>
{
using (SQLiteConnection connection = new SQLiteConnection(Globals.connectionString))
{
connection.Open();
string selectSql = "SELECT selectTemp, id, name, active, rating FROM tPeople";
using (SQLiteCommand cmd = new SQLiteCommand(selectSql, connection))
{
adapter = new SQLiteDataAdapter(cmd);
SQLiteCommandBuilder commandBuilder = new SQLiteCommandBuilder(adapter);
dataTable = new DataTable();
adapter.Fill(dataTable);
dataView = new DataView(dataTable);
}
connection.Close();
}
Dispatcher.Invoke(() =>
{
dataGrid2.ItemsSource = dataView;
UpdateStatusBar("מוכן");
});
});
}
catch (Exception ex)
{
// exceptions
}
}
@Y-Excel-Access כתב בגוגל שיטס - איך להעתיק היפר קישור בין חוברות עבודה:
יורשה לי לחלוק בנחרצות, GETVALUES עובד לי מצוין למרות שהגליון סגור כשהטריגר פועל, כלומר הפעולה גורמת לנוסחה בתא לחשב ולתת לAPP SCRIPT את התוצאות של הנוסחה.
נכון, כי כשאתה ניגש לנתונים אז גוגל מבצעת חישוב ומגישה לך את תוצאת החישוב..
מה שכתבתי
לצורך העניין אם תיגש לנתונים כשהגיליון סגור
כוונתי היתה שאם תיגש לקובץ (לא ממש אפשרי בגוגל שיטס אבל תוכל לנסות באקסל) שלא דרך הגוגל שיטס או הAPI אלא תפתח אותו בnotepad תראה שהתא מכיל את הנוסחה ולא את הערך..
@Y-Excel-Access האמת שכבר לא הבנתי מה אתה בדיוק מתכווין.. אולי כדאי שתביא קטע דוגמה שמבוסס על הצורך המדוייק.
HYPERLINK זה בסך הכל יוצר לינק בתא, לא? אז למה שהעיצוב שלו יהיה שונה משאר הלינקים, כפי שהעליתי מקודם (אני לא טוען מידיעה, לא נתקלתי בדבר כזה, וחיפשתי כעת קצת בתיעוד ולא מצאתי שקיים דבר כזה..)
מלבד זה נוסחאות בתא עצמו אף פעם לא נשמרות בגיליון אלא מחושבות בהפעלה, לצורך העניין אם תיגש לנתונים כשהגיליון סגור, תקבל רק את הנוסחה ולא את התוצאה שלה..
@Y-Excel-Access כתב בגוגל שיטס - איך להעתיק היפר קישור בין חוברות עבודה:
(שאם לוחצים על התא זה מפנה אותנו לשם - כמו כל פעם שאתה כותב מייל זה יוצר אותו כהיפר קישור אוטומטית, וכדו')
עד עכשיו לא הבנתי שלזה אתה מתכווין, אני לא בטוח שזה יושב בכלל בהגדרות העיצוב של התא, ולא משהו שמרונדר בהצגת הגיליון (כמו שלא שייך למצוא במייל את ה"עיצוב" של הלינקים, כי זה אכן לא קיים בגוף המייל, אלא מרונדר אוטומטית ע"י ג'ימייל בעת הצגת ההודעה)
@Y-Excel-Access כעת אני חושב שאולי זה יעזור לך
let spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('N3').copyTo(spreadsheet.getRange('N5'), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
בפשטות זה אמור לעבוד גם מחוברת עבודה אחרת,
@Y-Excel-Access אני לא מכיר פונקציה שמקבלת את כל עיצוב התא, תצטרך לכתוב בעצמך פונקציה בסגנון הזה שמקבל את כל ערכי העיצוב שאתה צריך
let sourceCell = SpreadsheetApp.getActiveSheet().getRange('גיליון1!A1');
let destinationCell = SpreadsheetApp.getActiveSheet().getRange('גיליון1!A2');
let fontSize = sourceCell.getFontSize();
let backgroundColor = sourceCell.getBackgroundColor();
let fontWeight = sourceCell.getFontWeight();
destinationCell.setFontSize(fontSize);
destinationCell.setBackgroundColor(backgroundColor);
destinationCell.setFontWeight(fontWeight);
@OdedDvir כתב בשימוש עם VScode בSSH בשרת זוללת משאבים??:
שימוש עם VScode בכל מחשב שהוא - זולל משאבים. נקודה.
ברור. אאל"ט זה אלקטרון++
@pelephone התכוונתי לא לדאוג שאני מפרסם את הכתובת "האישית" שלי כביכול...
@מנצפכ כתב בשיתוף: כמה כתובות מייל על גימייל אחד:
לפני כשבוע בערך עשיתי משהו שמוסיף לזיהוי של השליחה עד מאות ואלפי מיילים נוספים או מוחק אותם לפי בחירה אבל התכבה לי המחשב באמצע העבודה בלי שמירה
?
@pelephone למה אתה חושב שזה נכנס לספאם?
@dovid כתב בפונקציית גיבוב לאימות יחודיות של נתונים:
זה כנראה בגלל העברית, תווים שונים בעברית כנראה נחשבים אותו תו.
הבנתי ככה מגוגל, וניסיתי משהו דומה למה שהבאת, כעת אני כבר לא מונח בסוגיה, אבדוק מחר בעז"ה ואעדכן.
אני צריך לבדוק על מערכים גדולים יחסית של נתונים (יכול להגיע לכמה מאות תווים) שלא עובר סטרינג יותר מפעם אחת,
כתבתי פונקציה לגיבוב (גוגל סקריפט), והיה נראה שזה עובד טוב, עד ששמתי לב בבדיקות שכששלחתי כמה מילים בנות 3 אותיות (בעברית) האש היה אותו הדבר... מה לא תקין אצלי?
כרגע זה עובד טוב על הסטרינגים הארוכים, אבל תמיד יכול להיות משהו קצר יותר/2 משפטים ששונים באות או שניים...
הפונקציות שכתבתי
function generateHash(text) {
let rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, text);
let hexHash = rawHash.map(function (byte) {
return ('0' + (byte & 0xFF).toString(16)).slice(-2);
}).join('');
return hexHash;
}
function generateHashMD5(text) {
let rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, text);
Logger.log(rawHash)
let hexHash = rawHash.map(function (byte) {
return ('0' + (byte & 0xFF).toString(16)).slice(-2);
}).join('');
return hexHash;
}
ניסיתי לקחת מכאן https://stackoverflow.com/questions/7994410/hash-of-a-cell-text-in-google-spreadsheet מה שנראה אותו רעיון כמו הפונקציות הקודמות, אבל טיפה שונה, ועדיין אותו הדבר.
function GetSHA1(input) {
var rawHash = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_1, input);
var txtHash = '';
for (j = 0; j <rawHash.length; j++) {
var hashVal = rawHash[j];
if (hashVal < 0)
hashVal += 256;
if (hashVal.toString(16).length == 1)
txtHash += "0";
txtHash += hashVal.toString(16);
}
return txtHash;
}
@ek0583232948 כתב במחשב מומלץ לרכישה:
והוא טוען שיש בעיה בסדרות הE שהשקע טעינה נוטה להתקלקל
לא יודע לגבי השקע, יש לי מחשב כזה (E14), ואני משתמש במטען סיני פשוט, ואני אוחז כבר בשלישי, הם נשברים לי כשהמחשב נשען ע"ג השקע (הוא יחסית כבד בגלל המתכת), אמרו לי שהמזל שלי שזה מטען סיני שעולה 60 ש"ח כי אם זה היה מטען מקורי שהוא חזק יותר, אז השקע טעינה היה הולך שזה נזק יותר גדול
אבל כרגע אצלי לפחות השקע טעינה בסדר גמור, ותאמין לי שהוא עבר כמה גהינומים לא פשוטים...
וכן אני מכיר מישהו שיש לו כמה מחשבים כמו שלי שמסתובבים בבית, והיו להם כל מיני תקלות במהלך השנים אבל אף פעם לא בשקע טעינה, לאחד הלך הבטריה, לשני נתקע המאוורר, לשלישי הלך האות ל כי נשפך עליו קפה וכן הלאה...
המספר אחרי הE מייצג את גודל המסך באינצ'ים
בינתיים עשיתי קומבינה כזו, אבל מפחיד אותי שבתאריכים מסוימים זה יעשה בעיות..
import re
import hdate
import datetime
def get_hebrew(current_date):
year = current_date.year
month = current_date.month
day = current_date.day
try:
gregorian_date = datetime.date(year, month, day)
hebrew_date = hdate.HDate(gregorian_date, hebrew=True)
return hebrew_date
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
return None
hebrew = f'{get_hebrew(current_time)}'
index_tash = hebrew.find('ה\' תש')
if index_tash != -1:
hebrew = hebrew[:index_tash + 8]
else:
hebrew = hebrew
file_name = f'{hebrew}.wav'
file_name = file_name.replace("ה' ת", "ת")
sanitized_filename = re.sub(r'[\/:*?"<>|]', '', file_name)
sanitized_filename = re.sub(r'[\u0591-\u05C7]', '', sanitized_filename)
print(sanitized_filename)
לא יודע מה איתכם, אבל אני גיליתי לפני כמה ימים את העובדה הפשוטה, שVSC עובד גם עם קבצי bat ויודע לצבוע את המשתנים, הערות וכו' כל היתרונות של IDE מה שמאוד מקל על העריכה של קבצים כאלו...
אז רציתי להגדיר שלחיצה על "ערוך" או בווינדוס 11 "ערך באמצעות פנקס רשימות" ייפתח את הVSC במקום את פנקס הרשימות, והצלחתי בינתיים לעשות את זה רק ל"ערוך" שמופיע בווינדוס 10 ("הצג אפשרויות נוספות" בווינדוס 11), אשמח לדעת כיצד לשנות גם את התפריט של ווינדוס 11.
ככה משנים בתפריט הרגיל:
פותחים את עורך הרישום "regedit.exe" באמצעות החיפוש/התחל.
מנווטים לערך
HKEY_CLASSES_ROOT\batfile\shell\edit\command
ומקליקים פעמיים על הdefault, ואז יוצג הערך
%SystemRoot%\System32\NOTEPAD.EXE %1
תשנו לנתיב של הVSC, אצלי זה מותקן פר משתמש, אני מאמין שאצל הרוב זה יהיה הנתיב
C:\Program Files\Microsoft VS Code\Code.exe %1
ושימו לב להשאיר בסוף את
%1
(רווח, אחוז, אחד)
ללחוץ אישור וזהו. זה מיד משתנה ללא צורך בהפעלה מחדש או משהו.
אם מישהו יודע כיצד לשנות גם את התפריט של ווינדוס 11 אשמח שיעדכן.
כיצד ניתן לקבל תאריך עברי של היום/תאריך נתון בפייתון? אני רוצה ספריה ולא API
הספריה של hebcal שוקלת הרבה משום מה ומחזירה שגיאה בהתקנה
אני צריך סטרינג של "יום חמישי כב שבט תשפד" ללא תוספות,
מצאתי את זה
import datetime
import hdate
h = hdate.HDate(datetime.date(2024, 1, 25), hebrew=True)
print(h)
אבל זה מחזיר ביום רגיל
יום חמישי כב בשבט ה' תשפ"ד
ובחגים,
יום חמישי ט"ו בשבט ה' תשפ"ד ט"ו בשבט
וזה לא טוב לי...
מספיק לי גם התאריך לבדו, את היום אני יכול לקבל לבד ע"י החלפה של מספר היום שמתקבל לטקסט, משהו כזה
import datetime
def get_ordinal_number(number):
number = int(number)
if number not in range(0, 7):
raise ValueError("Number must be between 0 and 6.")
ordinals = {
0: "יום ראשון",
1: "יום שני",
2: "יום שלישי",
3: "יום רביעי",
4: "יום חמישי",
5: "יום שישי",
6: "מוצאי שבת",
}
return ordinals[number]
year = 2024
month = 2
day = 6
date_object = datetime.datetime(year, month, day)
day_of_week_number = int(date_object.strftime('%w'))
print(day_of_week_number)
print(get_ordinal_number(day_of_week_number))
@ששא תבצע קריאה ללינק הזה
https://www.hebcal.com/converter?cfg=json&gy=2024&gm=01&gd=15&g2h=1&strict=1&gs=off
זה ליום 15/01/2024
ומחזיר json כזה:
{"gy":2024,"gm":1,"gd":15,"afterSunset":false,"hy":5784,"hm":"Sh'vat","hd":5,"hebrew":"ה׳ בִּשְׁבָט תשפ״ד","heDateParts":{"y":"תשפ״ד","m":"שבט","d":"ה׳"},"events":["Parashat Bo"]}
אם אתה עובד באמת עם node js כמו שהבינו כאן לפני, עדיף לך להשתמש כמו שהביאו למעלה באופן לוקאלי,
import { HDate } from '@hebcal/core';
const date = new HDate().renderGematriya(true);
console.log(date)
אתה צריך להתקין את המודול
npm install @hebcal/core